[BE-09] GetLimitedDropUseCase + GetLimitedDropStatsUseCase (FR-9)

작업 내용 (설계 의도)

변경 사항

한정판 상태·집계 조회 UseCase(근거 TDD: “API 계약”, FR-9). 읽기 전용, DomainService만 호출.

  • GetLimitedDropUseCase.execute(dropId): LimitedDropView — status·openAt·closeAt + Redis remaining + perUserLimit 결합(FE QuantityStepper 상한용).
  • GetLimitedDropStatsUseCase.execute(dropId): LimitedDropStatsResult — 성공 건수(goods_orders 파생)·소진 거부·시작전 거부(Redis/지표 카운터). 전용 테이블 없이 파생(P2).

의존

  • BE-03 (LimitedDropDomainService), BE-06 (View·StatsResult)

다이어그램

클래스 의존

flowchart LR
    GetLimitedDropUseCase --> LimitedDropDomainService
    GetLimitedDropStatsUseCase --> LimitedDropDomainService

테스트 케이스

  • GetLimitedDrop이 존재하는 회차의 status·openAt·remaining·perUserLimit을 반환한다
  • 없는 dropId면 NotFound 예외를 던진다
  • GetStats가 성공·소진거부·시작전거부 건수를 집계해 반환한다