작업 내용
홈 화면 상단 요약 타일 4개에 필요한 카운트를 한 번에 내려주는 GET /me/summary 를 추가한다.
| 필드 |
의미 |
treatment_record_count |
내 시술 기록 수 |
analyzed_record_count |
분석이 성공한 시술 기록 수 (record 기준 distinct) |
saved_style_count |
저장한 후보 스타일 수 |
shared_record_count |
살아있는 공유에 포함된 시술 기록 수 (record 기준 distinct) |
shared_record_count 기준:
SELECT count(DISTINCT sr.record_id)
FROM share_records sr
JOIN shares s ON s.share_id = sr.share_id
WHERE s.user_id = :userId
AND s.status = 'ACTIVE'
AND s.expires_at > now();
작업 목적
이 타일을 채우는 집계 엔드포인트가 없어서 화면이 목록 API 를 조합해 숫자를 만들고 있고, 그 결과 두 칸이 잘못 나온다.
공유 카운트가 링크 수를 세고 있다. 타일 라벨은 시술 기록을 가리키는데 실제로는 shares 행 수가 표시된다. 링크 하나가 기록 여러 개를 담을 수도, 기록 없이 후보 스타일만 담을 수도 있고, 같은 기록으로 링크를 여러 번 만들 수도 있어 두 숫자는 단위가 다르다. 실사용 계정에서 시술 기록 14건에 "공유 중 16건" 이 뜨는 상태다 (기록 기준으로 세면 5건).
분석 카운트를 만들 방법이 없다. 분석 조회는 GET /treatment-records/{recordId}/analyses/latest 뿐이라 기록별 단건만 나온다. 전체를 세려면 기록 수만큼 호출해야 해서 사실상 불가능하고, 현재 0 으로 표시된다.
집계 규칙을 서버 한 곳에 두면 화면마다 정의가 갈리는 것도 막는다.
체크리스트
참고 자료
없음
작업 내용
홈 화면 상단 요약 타일 4개에 필요한 카운트를 한 번에 내려주는
GET /me/summary를 추가한다.treatment_record_countanalyzed_record_countsaved_style_countshared_record_countshared_record_count기준:작업 목적
이 타일을 채우는 집계 엔드포인트가 없어서 화면이 목록 API 를 조합해 숫자를 만들고 있고, 그 결과 두 칸이 잘못 나온다.
공유 카운트가 링크 수를 세고 있다. 타일 라벨은 시술 기록을 가리키는데 실제로는
shares행 수가 표시된다. 링크 하나가 기록 여러 개를 담을 수도, 기록 없이 후보 스타일만 담을 수도 있고, 같은 기록으로 링크를 여러 번 만들 수도 있어 두 숫자는 단위가 다르다. 실사용 계정에서 시술 기록 14건에 "공유 중 16건" 이 뜨는 상태다 (기록 기준으로 세면 5건).분석 카운트를 만들 방법이 없다. 분석 조회는
GET /treatment-records/{recordId}/analyses/latest뿐이라 기록별 단건만 나온다. 전체를 세려면 기록 수만큼 호출해야 해서 사실상 불가능하고, 현재 0 으로 표시된다.집계 규칙을 서버 한 곳에 두면 화면마다 정의가 갈리는 것도 막는다.
체크리스트
GET /me/summary추가 (ApiResponse<T>래퍼, 인증 필수)shared_record_count는status=ACTIVE AND expires_at > now인 공유 기준 distinctanalyzed_record_count도 record 기준 distinct (한 기록에 성공 분석이 여러 건일 수 있음)참고 자료
없음