💭 Description
OrderItem과 Product 연관 제거 및 주문 흐름/응답/테스트 전면 개선
✅ TODO
OrderController에서 OrderQueryFacade를 제거하고 OrderFacade로 통합, 응답 객체는 OrderDetailBundle 기반으로 일관되게 처리
OrderItem에서 Product 연관관계를 제거하고 productId, priceAtPurchase를 명시적으로 보유하도록 구조 변경
OrderCreateCommand에 productList를 추가하여 서비스 계층에서 미리 상품 정보를 주입받도록 설계 변경
OrderService는 외부에서 주입된 productList를 기반으로 주문을 생성하며, 내부에서 product를 조회하지 않음
ProductQueryService#getProductsExists 도입으로 상품 존재 여부 검증과 동시에 리스트 반환이 가능하도록 처리
- 테스트 코드(
OrderServiceTest, OrderQueryServiceTest)는 전면적으로 productList 기반 구조를 반영하고 category 제거로 간결화
OrderRepository의 EntityGraph 범위를 items까지만 제한하여 fetch depth 최적화
OrderDetailResponse.from()은 order와 productList를 인자로 받아 상품명과 가격 등을 표현하도록 변경
🔎 Reference