Repository navigation
feat: 매장 목록 정렬 공용화 · searchStores 정렬 추가 - #531
Conversation
검색 결과 매장 탭 시안에 '추천순 ▾' 정렬 시트(등록순·인기순·판매순)가 있는데 searchStores는 인기순 고정이었음. 메인 검색 결과(매장 선택) 화면도 같은 정렬을 쓰므로 정렬을 store 공용으로 둠.
- SDL: enum StoreSort { POPULAR, LATEST, BEST_SELLING } 추가, SearchStoresInput.sort(기본 POPULAR) 추가. '추천순' 라벨은 상품 검색과 같이 POPULAR로 해석
- StoreListingService.sortStores: 인기순은 기존 산식(scoreStores), 판매순은 최근 30일 유효 주문 수량 합(상품 검색 판매순과 같은 정의, 판매 0건도 뒤에 남김), 등록순은 created_at desc. 동률은 id desc
- 인기순만 카드 통계를 넘기고, 나머지는 buildCards 기본 집계에 맡김
- StoreRepository: 후보 select를 상수 1벌로 합치고 created_at 추가
테스트
- store-listing.service.spec: 정렬 3종·동률·30일 밖 판매 제외·통계 유무 4건
- store-search.service.spec: sort 지정·정렬 뒤 페이지 자르기, 생략·null이면 인기순 2건
- store-search-query.resolver.spec: sort 전달 1건
- 반증: 등록순·판매순 비교 방향을 뒤집으면 3건 실패
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
🧹 knip — dead-code 리포트전체 리포트
|
🩺 NestJS Doctor — 90/100 (Excellent)진단 485건 (error 12).
architecture / security 상위 항목
|
Coverage report
Show new covered files 🐣
Show files with reduced coverage 🔻
Test suite run success4269 tests passing in 384 suites. Report generated by 🧪jest coverage report action from 74298dc |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
요약
searchStores는 인기순 고정이었습니다.searchStores에 먼저 붙입니다. 매장 선택 화면 API(pickupStores)는 후속 PR에서 이 정렬을 재사용합니다.enum StoreSort { POPULAR, LATEST, BEST_SELLING }를 추가하고,SearchStoresInput.sort(기본POPULAR)를 추가했습니다.POPULAR로 해석합니다.StoreListingService.sortStoresscoreStores)created_at내림차순buildCards기본 집계에 맡깁니다.StoreRepository: 후보 select를 상수 1벌로 합치고created_at을 추가했습니다.테스트
store-listing.service.spec: 등록순 동률, 판매순(30일 밖 판매 제외·판매 0건 유지·동률), 인기순 통계 반환, 등록순·판매순 통계 미반환 4건store-search.service.spec: sort 지정과 정렬 뒤 페이지 자르기, 생략·null이면 인기순 2건store-search-query.resolver.spec: sort 전달 1건플랜 대조
enum StoreSort추가(store 공용)SearchStoresInput.sort: StoreSort = POPULARsearchStores·items설명의 "인기순 고정" 문구 교체@IsIn(STORE_SORTS)StoreListingService.sortStores(인기·판매·등록, 동률 id desc)searchStores인기순 고정 경로를sortStores로 교체StoreCandidateRow에created_at추가