## 📊 작업 우선순위 > 해당하는 우선순위에 체크해 주세요. * [x] `P0` : 서비스 핵심 동작 * [ ] `P1` : 운영 및 확장 기능 * [ ] `P2` : 부가적인 고도화 기능 --- ## ♻️ 리팩토링 목적 및 대상 > 어떤 코드를 왜 개선하는지 설명해 주세요. * **연관 이슈 번호** : # * **연관 도메인** : Order * **As-Is (변경 전)** : * 장바구니 선택 결제를 지원하지 않아 장바구니 전체 또는 단건 결제만 가능 * 주문 상세 조회 응답에 환불 완료 여부(`refunded`)가 없어 프론트에서 환불 상태를 정확히 구분하기 어려움 * 환불 요청 시 사유를 전달할 수 있는 Request DTO가 존재하지 않음 * **To-Be (변경 후)** : * `courseIds` Query Parameter를 통해 장바구니 선택 결제 지원 * 주문 상세 응답에 `refunded` 필드를 추가하여 환불 완료 여부 제공 * 환불 요청 DTO(`RefundRequest`)를 추가하여 환불 사유 전달 구조 마련 --- ## 💻 상세 작업 내용 * [ ] `Model` / `Policy` * [x] `UseCase` / `Command` * CheckoutUseCase 시그니처 확장 (`courseIds` 지원) * [x] `Service` * 선택 결제 로직 추가 * 장바구니 검증 로직 추가 * 주문 상세 조회 시 `refunded` 정보 반환 * [ ] `Port` / `Adapter` * [ ] `Repository` * [x] `Controller` * `courseIds` Query Parameter 추가 * 환불 Request Body를 받을 수 있도록 구조 개선 * [x] `response` / `request` * `RefundRequest` DTO 추가 * `OrderDetailResponse`에 `refunded` 필드 추가 * `OrderDetailResult`에 `refunded` 필드 추가 --- ## 🚨 검증 및 사이드 이펙트 확인 (TestCode) * [x] 기존 정상 동작 테스트 케이스 통과 확인 * [x] 예외(Exception) 처리 로직 유지 및 `assertThrows` 검증 통과 확인 * [ ] (필요시) 변경된 구조에 맞춘 새로운 단위 테스트 작성 --- ## ⚠️ 확인 사항 * API 응답값(`response` DTO) 형태의 변경이 있나요? (**Yes**) * 만약 변경되었다면, 프론트엔드 개발자에게 공유되었나요? (**Yes**)
📊 작업 우선순위
P0: 서비스 핵심 동작P1: 운영 및 확장 기능P2: 부가적인 고도화 기능♻️ 리팩토링 목적 및 대상
연관 이슈 번호 : #
연관 도메인 : Order
As-Is (변경 전) :
refunded)가 없어 프론트에서 환불 상태를 정확히 구분하기 어려움To-Be (변경 후) :
courseIdsQuery Parameter를 통해 장바구니 선택 결제 지원refunded필드를 추가하여 환불 완료 여부 제공RefundRequest)를 추가하여 환불 사유 전달 구조 마련💻 상세 작업 내용
Model/PolicyUseCase/CommandcourseIds지원)Servicerefunded정보 반환Port/AdapterRepositoryControllercourseIdsQuery Parameter 추가response/requestRefundRequestDTO 추가OrderDetailResponse에refunded필드 추가OrderDetailResult에refunded필드 추가🚨 검증 및 사이드 이펙트 확인 (TestCode)
assertThrows검증 통과 확인responseDTO) 형태의 변경이 있나요? (Yes)