Skip to content

[FEAT] 구매/정산 - 결제내역 환불 표시 + 월별 판매내역 페이지네이션 #497

@minij02

Description

@minij02

✨ 기능 설명

정산/구매 통계의 UX 보완 두 가지를 한 PR에 묶음. 커밋은 항목별로 분리.

  1. 결제내역에 환불 정보 표시 — 환불된 거래(status='Refunded')를 결제내역(GET /api/prompts/purchases)에서 식별 가능하도록 응답 확장
  2. 월별 판매내역 페이지네이션GET /api/settlements/sales/monthly에 page/limit 파라미터 추가 ("더보기" UI 명세 [FEAT] 정산 - 판매자 정보 변경 화면 API 및 LEGACY 은행코드 정리 #473 잔여)

✨ 개발 목록

Commit 1 — 결제내역 환불 표시

  • PurchaseRepository.findSucceededByUser → 환불(Refunded) 행도 포함하도록 조건 변경 (또는 별도 함수)
  • PurchaseHistoryItemDTOstatus, refunded_at 필드 추가
  • PurchaseHistoryService.list에서 status / refunded_at 매핑
    • payment.refund.refunded_at 우선 사용
  • purchase.route.ts Swagger 응답 schema 갱신 (status enum, refunded_at nullable)

Commit 2 — /sales/monthly 페이지네이션

  • 쿼리 파라미터 page(기본 1) + limit(기본 10, 최대 100) 추가
  • SettlementHistoryRepository.findSalesByMonthskip/take 적용 + 총 건수 반환
  • MonthlySalesResponseDtopagination 필드 추가:
    pagination: { page, limit, total, total_pages, has_next }
    
  • summary는 페이지가 아닌 월 전체 합계 그대로 유지 (정산 통계 일관성)
  • Swagger 갱신

Commit 3 — 검증

  • pnpm build / pnpm tsc --noEmit
  • 응답 형식 확인

✨ API 변경 (프론트 동기화)

  • GET /api/prompts/purchases 응답 items에 status + refunded_at 추가
  • GET /api/settlements/sales/monthly?year=&month=&page=&limit= 신규 파라미터, 응답에 pagination 추가

✨ 기타 / 질문

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions