Ordering BOUNDED CONTEXT
注文の受付・確定・キャンセルを扱う境界づけられたコンテキスト | source: code(src/domain/ordering) | 生成: 2026/7/3 16:37:21
集約 2Entity 3Value Object 6Enum 2Repository 2Domain Service 1Domain Event 1
集約ヘッダーをクリック = フォーカス(関連要素以外を淡色化・再クリックか背景クリックで解除)/ ▾ = 折りたたみ / 型名クリック = 定義へジャンプ / カードや型名にホバー = 参照を強調 / 金色の線にホバー = 参照の説明
OVERVIEW ─ モデル概説
Order と Customer を独立集約とし、ID 参照で結合を断つ設計。(テスト記入)
集約ルート
エンティティ
バリューオブジェクト
列挙型
リポジトリ
ドメインイベント
ドメインサービス
集約間 ID 参照
共有語彙
«AGGREGATE»
Order
注文集約。明細合計と請求金額の一致を保証する
OrderOrderLine
OrderIdQuantityProductIdOrderStatus
ENTITIES
«ENTITY · AGGREGATE ROOT»
Order
注文。DRAFT→PLACED→SHIPPED のライフサイクルを持つ
idOrderId
customerIdCustomerId↗ Customer
linesOrderLine[]
statusOrderStatus
totalAmountMoney◇ 共有語彙
- totalAmount は全 OrderLine 小計の合計と常に一致する
- PLACED 以降は明細を変更できない
«ENTITY»
OrderLine
注文明細。集約内でのみ識別されるローカルエンティティ
lineNoint
productIdProductId
quantityQuantity
unitPriceMoney◇ 共有語彙
VALUE OBJECTS / ENUMS
«VALUE OBJECT»
OrderId
valuestring
«VALUE OBJECT»
Quantity
valueint
- 1 以上 999 以下
«VALUE OBJECT»
ProductId
商品カタログ(別コンテキスト)の商品を指す識別子
valuestring
«ENUM»
OrderStatus
DRAFTPLACEDSHIPPEDCANCELLED
«REPOSITORY»
⚡ OrderPlaced
OrderRepository
OrderId による復元と保存
managesOrder
«AGGREGATE»
Customer
顧客集約
Customer
CustomerIdCustomerNameCustomerGrade
ENTITIES
«ENTITY · AGGREGATE ROOT»
Customer
idCustomerId
nameCustomerName
gradeCustomerGrade
creditLimitMoney◇ 共有語彙
VALUE OBJECTS / ENUMS
«VALUE OBJECT»
CustomerId
valuestring
«VALUE OBJECT»
CustomerName
valuestring
«ENUM»
CustomerGrade
REGULARGOLD
«REPOSITORY»
CustomerRepository
managesCustomer
DOMAIN SERVICES
«DOMAIN SERVICE»
OrderPricingService
顧客グレードに応じた注文金額の算定。単一集約に閉じない計算のためドメインサービスとする
関連集約Order, Customer
SHARED VALUE OBJECTS ─ 集約を跨いで使われる共有語彙