프로젝트 지침 v1.0
flowchart LR
CAT["Catalog"]
DSP["Display"]
EVT["Event"]
MEM["Member"]
SUP["Supplier"]
PUR["Purchase"]
ORD["Order"]
CLM["Claim"]
DEL["Delivery"]
SET["Settlement"]
CAT -->|"상품 스냅샷 조회"| ORD
CAT -->|"전시 가능 상품 조회"| DSP
EVT -->|"할인/쿠폰 규칙 조회"| ORD
EVT -->|"기획전/혜택 연동"| DSP
MEM -->|"회원 등급/상태 조회"| ORD
SUP -->|"계약/공급가 조회"| PUR
PUR -->|"입고 완료 이벤트"| CAT
ORD -->|"주문 확정 이벤트"| DEL
ORD -->|"주문 확정/취소 이벤트"| SET
CLM -->|"클레임 확정 이벤트"| SET
CLM -->|"재고 복원 이벤트"| CAT
DEL -->|"배송 완료 이벤트"| SET
flowchart TD
A["CatalogController"]
B["CatalogUseCase"]
C["Product Aggregate"]
D["Stock Aggregate"]
E["ShelfLife Policy"]
F["ProductRepository Port"]
G["StockRepository Port"]
H["JpaProductAdapter"]
I["JpaStockAdapter"]
J["PostgreSQL"]
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
H -. "implements" .-> F
I -. "implements" .-> G
H --> J
I --> J
flowchart TD
A["DisplayController"]
B["DisplayUseCase"]
C["Exhibition Aggregate"]
D["Banner Aggregate"]
E["Exposure Policy"]
F["CatalogQuery Port"]
G["DisplayRepository Port"]
H["CatalogApiAdapter"]
I["JpaDisplayAdapter"]
J["PostgreSQL"]
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
H -. "implements" .-> F
I -. "implements" .-> G
I --> J
flowchart TD
A["EventController"]
B["EventUseCase"]
C["Promotion Aggregate"]
D["Coupon Aggregate"]
E["Eligibility Policy"]
F["DiscountCalculator"]
G["PromotionRepository Port"]
H["CouponRepository Port"]
I["JpaPromotionAdapter"]
J["JpaCouponAdapter"]
K["PostgreSQL"]
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
B --> H
I -. "implements" .-> G
J -. "implements" .-> H
I --> K
J --> K
flowchart TD
A["OrderController"]
B["CreateOrderUseCase"]
C["Order Aggregate"]
D["InventoryReserve Port"]
E["MemberGrade Port"]
F["PromotionApply Port"]
G["Idempotency Port"]
H["OrderRepository Port"]
I["InventoryAdapter"]
J["MemberAdapter"]
K["EventAdapter"]
L["RedisIdempotencyAdapter"]
M["JpaOrderAdapter"]
N["PostgreSQL"]
O["Redis"]
A --> B
B --> G
B --> E
B --> F
B --> D
B --> C
B --> H
I -. "implements" .-> D
J -. "implements" .-> E
K -. "implements" .-> F
L -. "implements" .-> G
M -. "implements" .-> H
M --> N
L --> O
flowchart TD
A["ClaimController"]
B["ClaimUseCase"]
C["Claim Aggregate"]
D["Refund Policy"]
E["OrderStatus Port"]
F["InventoryRestore Port"]
G["PaymentRefund Port"]
H["ClaimRepository Port"]
I["OrderAdapter"]
J["CatalogAdapter"]
K["PaymentAdapter"]
L["JpaClaimAdapter"]
M["PostgreSQL"]
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
B --> H
I -. "implements" .-> E
J -. "implements" .-> F
K -. "implements" .-> G
L -. "implements" .-> H
L --> M
flowchart TD
A["ClaimController"]
B["ClaimUseCase"]
C["Claim Aggregate"]
D["Refund Policy"]
E["OrderStatus Port"]
F["InventoryRestore Port"]
G["PaymentRefund Port"]
H["ClaimRepository Port"]
I["OrderAdapter"]
J["CatalogAdapter"]
K["PaymentAdapter"]
L["JpaClaimAdapter"]
M["PostgreSQL"]
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
B --> H
I -. "implements" .-> E
J -. "implements" .-> F
K -. "implements" .-> G
L -. "implements" .-> H
L --> M