sequenceDiagram
participant 고객 as "Client"
participant 주문컨트롤러 as "OrderController"
participant 주문서비스 as "OrderService"
participant 사용자리더 as "UserReader"
participant 제품리더 as "ProductReader"
participant 주문저장소 as "OrderStore"
Note over 고객,주문컨트롤러: 주문 등록 프로세스
고객->>주문컨트롤러: POST /orders (RegisterOrderRequest)
주문컨트롤러->>주문서비스: registerOrder(command)
주문서비스->>사용자리더: getUser(command.userId)
사용자리더->>주문서비스: return User
주문서비스->>제품리더: getProduct(command.productId)
제품리더->>주문서비스: return Product
주문서비스->>주문저장소: store(Order)
주문저장소->>주문서비스: return stored Order
주문서비스->>주문컨트롤러: return OrderToken
주문컨트롤러->>고객: return CommonResponse (OrderToken)
Note over 고객,주문컨트롤러: 주문 조회 프로세스
고객->>주문컨트롤러: GET /orders/users/{userToken}
주문컨트롤러->>주문서비스: retrieveOrders(userToken)
주문서비스->>사용자리더: getUser(userToken)
사용자리더->>주문서비스: return User
주문서비스->>주문저장소: getAllByUser(User)
주문저장소->>주문서비스: return List<Order>
주문서비스->>주문컨트롤러: return List<OrderInfo>
주문컨트롤러->>고객: return CommonResponse (List<OrderInfo>)