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»
OrderRepository
OrderId による復元と保存
managesOrder
⚡ OrderPlaced
«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 ─ 集約を跨いで使われる共有語彙
«VALUE OBJECT · SHARED»
Money
通貨付き金額。複数の集約から使われる共有語彙
amountdecimal
currencystring
  • amount は 0 以上