This project does not use a database; it relies solely on mock data. The goal is to achieve loose coupling between components
- Product
- Coupon
- Customer
- Order
- Delivery
- Payment
- Kitchen
-
A Product is an item with defined attributes such as price, stock, and options.
-
A Coupon can only be applied to specific Products and specifies the usage period and conditions.
-
A Customer has an account that contains personal and payment information.
-
A Kitchen holds specific Products and is responsible for the preparation and delivery of those Products.
-
A Customer can purchase a Product.
- 5-1. When ordering via Mobile, the customer enters information such as the delivery address and payment method.
- 5-2. When ordering via Kiosk, the customer enters payment information.
-
Create an order form that matches the appropriate format.
-
Proceed with payment.
- Payment can be made through mobile payment, card payment, cash payment, etc.
-
Order details transmission:
- 8-a. When ordering via Mobile, the order details are transmitted to both the Kitchen and Delivery domains.
- 8-b. When ordering via Kiosk, the order details are transmitted only to the Kitchen domain.
-
Product는 가격, 재고, 옵션 등이 정의된 상품이다.
-
Coupon은 특정 Product에만 적용될 수 있으며, 사용 가능한 기간과 조건이 명시된다.
-
Customer는 개인 정보, 결제 정보 등을 포함한 계정을 가진다.
-
Kitchen은 특정 Product를 보유하고 있으며, 해당 Product의 준비 및 배송을 담당한다.
-
Customer는 Product를 구매할 수 있다.
- 5-1. Mobile을 통해 주문 시, 사용자는 배송 주소, 결제 방법 등의 정보를 입력한다.
- 5-2. Kiosk를 통해 주문 시, 사용자는 결제 정보를 입력한다.
-
각 형식에 맞는 주문서를 제작한다.
-
결제를 진행한다.
- 결제는 모바일 결제, 카드 결제, 현금 결제 등의 방법으로 진행된다.
-
주문 명세 정보 전송:
- 8-a. Mobile로 주문 시, Kitchen과 Delivery 도메인으로 주문 명세 정보를 전송한다.
- 8-b. Kiosk로 주문 시, Kitchen 도메인으로만 주문 명세 정보를 전송한다.