Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ public ApiResponse<LibraryResponseDTO.CreateResult> addSearchHistoryToLibrary(
- group1, group2 : 각 라이브러리 기본 정보
- keyCharacteristics : 주요 특성 비교 (차이점 포함)
- comparisonCharts : 비교 차트 데이터 (Chart.js 형식)
- basicComparison : 기본 통계 비교
- comparisons : 기본 통계 비교

## 권한
본인이 생성한 라이브러리만 비교할 수 있습니다.
Expand All @@ -181,28 +181,28 @@ public ApiResponse<LibraryCompareResponseDTO.CompareResult> compareLibraries(
return ApiResponse.onSuccess(result);
}

@PostMapping("/compare/test")
@Operation(summary = "라이브러리 비교 (테스트용)", description = """
## 개요
AI 서버 연동 없이 하드코딩된 테스트 데이터로 라이브러리 비교를 제공하는 API입니다.
개발 및 테스트 목적으로 사용됩니다.

## Request Body
- libraryId1 : 첫 번째 라이브러리 ID (필수)
- libraryId2 : 두 번째 라이브러리 ID (필수)

## 응답 데이터
- 하드코딩된 테스트 데이터 반환
- 실제 라이브러리 데이터는 사용하지 않음

## 권한
인증된 사용자만 접근 가능합니다.

""")
public ApiResponse<LibraryCompareResponseDTO.CompareResult> compareLibrariesTest(
@RequestBody @Valid LibraryCompareRequestDTO.Compare request) {
Member member = currentUserService.getCurrentUser();
LibraryCompareResponseDTO.CompareResult result = libraryService.compareLibrariesTest(request, member);
return ApiResponse.onSuccess(result);
}
// @PostMapping("/compare/test")
// @Operation(summary = "라이브러리 비교 (테스트용)", description = """
// ## 개요
// AI 서버 연동 없이 하드코딩된 테스트 데이터로 라이브러리 비교를 제공하는 API입니다.
// 개발 및 테스트 목적으로 사용됩니다.
//
// ## Request Body
// - libraryId1 : 첫 번째 라이브러리 ID (필수)
// - libraryId2 : 두 번째 라이브러리 ID (필수)
//
// ## 응답 데이터
// - 하드코딩된 테스트 데이터 반환
// - 실제 라이브러리 데이터는 사용하지 않음
//
// ## 권한
// 인증된 사용자만 접근 가능합니다.
//
// """)
// public ApiResponse<LibraryCompareResponseDTO.CompareResult> compareLibrariesTest(
// @RequestBody @Valid LibraryCompareRequestDTO.Compare request) {
// Member member = currentUserService.getCurrentUser();
// LibraryCompareResponseDTO.CompareResult result = libraryService.compareLibrariesTest(request, member);
// return ApiResponse.onSuccess(result);
// }
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

public class LibraryCompareResponseDTO {

Expand All @@ -23,14 +22,14 @@ public static class CompareResult {
@JsonProperty("group2")
private GroupInfo group2;

@JsonProperty("keyCharacteristics")
@JsonProperty("key_characteristics")
private List<KeyCharacteristic> keyCharacteristics;

@JsonProperty("comparisonCharts")
private List<ComparisonChart> comparisonCharts;
@JsonProperty("basic_comparison")
private Comparisons comparisons;

@JsonProperty("basicComparison")
private List<BasicComparison> basicComparison;
@JsonProperty("insights")
private Insights insights;
}

@Getter
Expand All @@ -39,19 +38,38 @@ public static class CompareResult {
@AllArgsConstructor
public static class GroupInfo {

@JsonProperty("libraryId")
@JsonProperty("library_id")
private Long libraryId;

@JsonProperty("libraryName")
@JsonProperty("library_name")
private String libraryName;

@JsonProperty("totalCount")
@JsonProperty("summary")
private String summary;

@JsonProperty("total_count")
private Integer totalCount;

@JsonProperty("filters")
private List<Filter> filters;

@JsonProperty("color")
private String color;
}

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Filter {

@JsonProperty("key")
private String key;

@JsonProperty("values")
private List<String> values;
}

@Getter
@Builder
@NoArgsConstructor
Expand All @@ -64,10 +82,10 @@ public static class KeyCharacteristic {
@JsonProperty("description")
private String description;

@JsonProperty("group1Percentage")
@JsonProperty("group1_percentage")
private Integer group1Percentage;

@JsonProperty("group2Percentage")
@JsonProperty("group2_percentage")
private Integer group2Percentage;

@JsonProperty("difference")
Expand All @@ -78,34 +96,71 @@ public static class KeyCharacteristic {
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class ComparisonChart {
public static class Comparisons {

@JsonProperty("chartType")
private String chartType;
@JsonProperty("group1")
private GroupMetrics group1;

@JsonProperty("title")
private String title;
@JsonProperty("group2")
private GroupMetrics group2;
}

@JsonProperty("data")
private Map<String, Object> data;
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class GroupMetrics {

@JsonProperty("male")
private Integer male;

@JsonProperty("female")
private Integer female;

@JsonProperty("seoul")
private Integer seoul;

@JsonProperty("gyeonggi")
private Integer gyeonggi;

@JsonProperty("busan")
private Integer busan;

@JsonProperty("options")
private Map<String, Object> options;
@JsonProperty("region_etc")
private Integer regionEtc;

@JsonProperty("avg_age")
private Double avgAge;

@JsonProperty("avg_family")
private Double avgFamily;

@JsonProperty("avg_children")
private Double avgChildren;

@JsonProperty("rate_possessing_car")
private Integer ratePossessingCar;

@JsonProperty("avg_personal_income")
private Integer avgPersonalIncome;

@JsonProperty("avg_family_income")
private Integer avgFamilyIncome;
}

@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class BasicComparison {
public static class Insights {

@JsonProperty("metric")
private String metric;
@JsonProperty("difference")
private String difference;

@JsonProperty("group1Value")
private String group1Value;
@JsonProperty("common")
private String common;

@JsonProperty("group2Value")
private String group2Value;
@JsonProperty("implication")
private String implication;
}
}
Loading
Loading