mirror of
https://github.com/s-frick/effigenix.git
synced 2026-03-28 19:00:23 +01:00
- Move Java backend to backend/ directory - Create frontend/ directory for TypeScript TUI and future WebUI - Update .gitignore for Node.js and worktrees - Update README.md with new repository structure - Copy documentation to backend/
80 lines
2.2 KiB
Markdown
80 lines
2.2 KiB
Markdown
# Filiales BC - Detailliertes Domain Model
|
|
|
|
**Bounded Context:** Filiales
|
|
**Domain Type:** CORE
|
|
**Verantwortung:** Mehrfilialen-Management, Interfilial-Transfers, zentrale Produktion
|
|
|
|
## Aggregates
|
|
|
|
### Branch (Aggregate Root)
|
|
|
|
```
|
|
Branch
|
|
├── BranchId
|
|
├── BranchName
|
|
├── BranchType (PRODUCTION_AND_SALES | SALES_ONLY | PRODUCTION_ONLY)
|
|
├── Address
|
|
├── OpeningHours
|
|
├── Status (ACTIVE | INACTIVE | CLOSED)
|
|
├── Manager (UserId)
|
|
├── ContactInfo
|
|
├── Capabilities
|
|
│ ├── CanProduce (boolean)
|
|
│ ├── CanSell (boolean)
|
|
│ └── CanReceiveGoods (boolean)
|
|
└── AssignedEmployees[] (UserId)
|
|
|
|
Invariants:
|
|
- BranchType must match Capabilities
|
|
- Manager must be in AssignedEmployees
|
|
- Cannot close with pending production orders
|
|
```
|
|
|
|
### InterBranchTransfer (Aggregate Root)
|
|
|
|
```
|
|
InterBranchTransfer
|
|
├── TransferId
|
|
├── FromBranch (BranchId)
|
|
├── ToBranch (BranchId)
|
|
├── TransferDate
|
|
├── RequestedBy (UserId)
|
|
├── Status (REQUESTED | APPROVED | IN_TRANSIT | RECEIVED | CANCELLED)
|
|
├── Items[] (Entity)
|
|
│ ├── ArticleId
|
|
│ ├── BatchId - CRITICAL for traceability!
|
|
│ ├── Quantity
|
|
│ ├── ExpiryDate
|
|
│ └── ReceivedQuantity
|
|
├── ShippedAt
|
|
├── ReceivedAt
|
|
└── TransportDocumentId
|
|
|
|
Invariants:
|
|
- FromBranch != ToBranch
|
|
- Status: REQUESTED → APPROVED → IN_TRANSIT → RECEIVED
|
|
- ShippedAt < ReceivedAt
|
|
- Triggers two StockMovements (out + in)
|
|
```
|
|
|
|
### DistributionPlan (Aggregate Root)
|
|
|
|
```
|
|
DistributionPlan
|
|
├── DistributionPlanId
|
|
├── ProductionBatchId - From Production BC
|
|
├── ProducingBranch (BranchId)
|
|
├── PlannedFor (Date)
|
|
├── Status (PLANNED | IN_DISTRIBUTION | COMPLETED)
|
|
├── Distributions[] (Entity)
|
|
│ ├── TargetBranch (BranchId)
|
|
│ ├── AllocatedQuantity
|
|
│ ├── TransferId - Link to InterBranchTransfer
|
|
│ └── DeliveryStatus (PENDING | SHIPPED | DELIVERED)
|
|
├── TotalQuantityProduced
|
|
└── RemainingAtCentral
|
|
|
|
Invariants:
|
|
- SUM(AllocatedQuantity) + RemainingAtCentral = TotalQuantityProduced
|
|
- ProducingBranch must be PRODUCTION_ONLY or PRODUCTION_AND_SALES
|
|
```
|