# Supporting BCs - Übersicht

**Domain Type:** SUPPORTING
**DDD-Aufwand:** Vereinfacht (weniger Komplexität als Core)

---

## Master Data BC

### Article (Aggregate Root)

```
Article
├── ArticleId
├── ArticleName
├── ArticleNumber (SKU)
├── Category (ProductCategory)
├── SalesUnits[] (Entity)
│   ├── Unit (PIECE_FIXED | KG | 100G | PIECE_VARIABLE)
│   ├── PriceModel (FIXED | WEIGHT_BASED)
│   └── Price (Money)
├── Status (ACTIVE | INACTIVE)
└── Supplier References[]
```

### Supplier (Aggregate Root)

```
Supplier
├── SupplierId
├── Name
├── Address
├── PaymentTerms
├── QualityCertificates[]
└── Rating (Quality, Delivery, Price)
```

### Customer (Aggregate Root)

```
Customer
├── CustomerId
├── CustomerType (B2C | B2B)
├── Name
├── DeliveryAddresses[]
├── FrameContract (optional)
└── Preferences (Bio, Regional, etc.)
```

---

## Sales BC

### Order (Aggregate Root)

```
Order
├── OrderId
├── OrderType (PRE_ORDER | B2B_ORDER | WALK_IN)
├── CustomerId
├── OrderDate
├── DeliveryDate
├── Items[]
└── Status (OPEN | CONFIRMED | FULFILLED)
```

### Invoice (Aggregate Root)

```
Invoice
├── InvoiceId
├── OrderId
├── InvoiceDate
├── Items[]
├── TotalAmount
└── PaymentStatus (OPEN | PAID | OVERDUE)
```

---

## Scale Integration BC

### ScaleSyncJob (Aggregate Root)

```
ScaleSyncJob
├── SyncJobId
├── ScaleId
├── SyncType (ARTICLES | PRICES | LABELS)
├── Status (PENDING | IN_PROGRESS | COMPLETED | FAILED)
└── SyncedAt
```

### BondDataImport (Aggregate Root)

```
BondDataImport
├── ImportId
├── ImportDate
├── BranchId
├── ScaleId
├── SalesData[] (Entity)
│   ├── ArticleId
│   ├── Quantity
│   ├── Price
│   ├── SoldAt
│   └── BatchId (if traceable)
└── Status (PENDING | IMPORTED | FAILED)

Triggers: StockMovement for each sale
```
