## 📊 개발 단계 및 우선순위 - [x] `P0` : 서비스 핵심 동작 ## 🎯 도메인 연관 관계 및 완료 조건 - [x] `연관 도메인` : payment, order, enrollment - [ ] `설명` : 토스페이먼츠 결제 승인 API 호출 후 Order / Payment / Enrollment 원자적 생성 ## 💻 상세 작업 내용 - [ ] `Model / Policy` : Payment 상태 전이 정책 (READY → PAID) - [ ] `UseCase / Command` : ConfirmPaymentCommand - [ ] `Service` : 토스 승인 호출 + 트랜잭션 내 Order/Payment/Enrollment 동시 생성 - [ ] `Port / Adapter` : TossPaymentsAdapter.confirm() - [ ] `Repository` : PaymentRepository.save(), EnrollmentRepository.save() - [ ] `Controller` : POST /api/payments/confirm - [ ] `response / request` : PaymentConfirmRequest, PaymentConfirmResponse ## 🚨 검증 및 예외 처리 (TestCode) - [ ] 정상 승인 시 Payment(PAID) + Enrollment(ENROLLED) 동시 생성 확인 - [ ] 토스 API 실패 시 전체 롤백 확인 - [ ] amount 불일치 시 예외 발생 확인 ## 🔗 참고 자료 - 토스페이먼츠 결제 승인 API 문서
📊 개발 단계 및 우선순위
P0: 서비스 핵심 동작🎯 도메인 연관 관계 및 완료 조건
연관 도메인: payment, order, enrollment설명: 토스페이먼츠 결제 승인 API 호출 후 Order / Payment / Enrollment 원자적 생성💻 상세 작업 내용
Model / Policy: Payment 상태 전이 정책 (READY → PAID)UseCase / Command: ConfirmPaymentCommandService: 토스 승인 호출 + 트랜잭션 내 Order/Payment/Enrollment 동시 생성Port / Adapter: TossPaymentsAdapter.confirm()Repository: PaymentRepository.save(), EnrollmentRepository.save()Controller: POST /api/payments/confirmresponse / request: PaymentConfirmRequest, PaymentConfirmResponse🚨 검증 및 예외 처리 (TestCode)
🔗 참고 자료