-
Notifications
You must be signed in to change notification settings - Fork 0
마이그레이션작업수행 #55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
마이그레이션작업수행 #55
Conversation
|
Caution Review failedThe pull request is closed. Walkthrough주문 관리 기능을 구현하는 변경사항입니다. 주문 엔티티, 저장소, 서비스, REST 컨트롤러를 추가하고, 주문 생성 시 메뉴 재고를 감소시키며, 주문 항목의 상태 전환 기능을 제공합니다. Changes
Sequence Diagram(s)sequenceDiagram
actor Client
participant OrderController
participant OrderService
participant CartRepository
participant MenuRepository
participant OrderRepository
participant OrderItemRepository
participant Database
Client->>OrderController: POST /api/orders
OrderController->>OrderService: createOrder()
OrderService->>OrderService: 현재 사용자 조회
OrderService->>CartRepository: 사용자의 장바구니 조회
rect rgb(200, 220, 255)
Note over OrderService,Database: 장바구니 항목 검증 및 처리
OrderService->>OrderService: 장바구니 비어있음 확인
loop 각 장바구니 항목마다
OrderService->>MenuRepository: 메뉴 조회
OrderService->>MenuRepository: decreaseStockQuantity(수량)
alt 재고 부족
MenuRepository-->>OrderService: CustomException (MENU_OUT_OF_STOCK)
OrderService-->>Client: 400 Bad Request
else 재고 충분
MenuRepository->>Database: 재고 감소, 필요시 품절 표시
end
OrderService->>OrderService: OrderItem 생성
end
end
rect rgb(200, 255, 220)
Note over OrderService,Database: 주문 저장 및 정리
OrderService->>OrderRepository: createOrder(사용자, 항목들)
OrderRepository->>Database: Order 엔티티 저장 (CASCADE로 OrderItem도 저장)
OrderService->>CartRepository: 장바구니 항목 삭제
OrderService->>CartRepository: 장바구니 엔티티 삭제
end
OrderService-->>OrderController: OrderResponse 반환
OrderController-->>Client: 201 Created + 주문 정보
sequenceDiagram
actor AdminClient
participant OrderController
participant OrderService
participant OrderItemRepository
participant Database
AdminClient->>OrderController: PATCH /api/orders/{orderId}/categories/{categoryId}/ready
rect rgb(200, 220, 255)
Note over OrderController,Database: 권한 검증 및 상태 업데이트
OrderController->>OrderController: `@PreAuthorize` 권한 확인
alt 관리자 권한 없음
OrderController-->>AdminClient: 403 Forbidden
else 관리자 권한 있음
OrderController->>OrderService: updateCategoryToReady(orderId, categoryId)
OrderService->>OrderItemRepository: findByOrderOrderIdAndCategoryId()
OrderItemRepository->>Database: 주문 항목 조회
OrderService->>OrderService: 항목 존재 확인
loop 각 주문 항목마다
OrderService->>OrderService: markAsReady() 호출 (PREPARING → READY)
alt 상태 전환 불가능
OrderService-->>AdminClient: 400 Bad Request (INVALID_ORDER_STATUS)
else 상태 전환 성공
Database->>Database: 항목 상태 업데이트
end
end
end
end
OrderController-->>AdminClient: 200 OK
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Poem
✨ Finishing touches
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (13)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
✨ 변경 사항
✅ 테스트
Summary by CodeRabbit
릴리스 노트
새로운 기능
✏️ Tip: You can customize this high-level summary in your review settings.