# DDD Domain Model - Effigenix Fleischerei-ERP **Erstellt:** 2026-02-17 **Technologie:** Java 21+ **Architektur:** Domain-Driven Design + Clean Architecture ## Überblick Dieses Dokument beschreibt das Domain-Driven Design (DDD) Modell für das Effigenix Fleischerei-ERP System. ## Projektziele 1. **ERP-Grundlagen** für Stammdatenverwaltung, Auftragsabwicklung und Fakturierung 2. **HACCP-Compliance** - Vollständiges QM-System als Kernmehrwert für kleine Betriebe 3. **Rezeptur-Management** - Mehrstufige Rezepturen mit Chargen-Tracking und Rückverfolgbarkeit 4. **Produktionsplanung** - Verkaufstrends-Analyse zur Vermeidung von Überproduktion 5. **Mehrfilialen-Unterstützung** - Zentrale Produktion mit Belieferung mehrerer Filialen ## DDD-Phasen ### Phase 0: Technologie-Auswahl ✅ - **Sprache:** Java 21+ - **Patterns:** Result Types, Sealed Interfaces, Pattern Matching - **Architektur:** Clean Architecture (Domain → Application → Infrastructure) ### Phase 1: Domain Discovery ✅ - **Subdomain-Klassifizierung:** Core, Supporting, Generic - **DDD-Investment:** Volles DDD für 7 Core Domains ### Phase 2: Bounded Contexts ✅ - **11 Bounded Contexts** identifiziert - **Context Map** mit Beziehungen erstellt - **Ubiquitous Language** für jeden BC definiert ### Phase 3: Tactical Modeling ✅ - **Aggregates** identifiziert für alle Core BCs - **Entities** und **Value Objects** definiert - **Invarianten** dokumentiert ### Phase 4: Invarianten (TODO) - Detaillierte Invarianten-Dokumentation - Enforcement Points definieren ### Phase 5: Code-Generierung (TODO) - Java-Code aus Aggregates generieren - Repository Interfaces - Use Cases ### Phase 6: Validation (TODO) - DDD-Rules-Checklist durchgehen - Clean Architecture Compliance prüfen ## Dokumentationsstruktur ``` docs/mvp/ddd/ ├── 00-overview.md (dieses Dokument) ├── 01-domain-classification.md ├── 02-bounded-contexts.md ├── 03-ubiquitous-language.md ├── 04-production-bc.md ├── 05-quality-bc.md ├── 06-labeling-bc.md ├── 07-inventory-bc.md ├── 08-procurement-bc.md ├── 09-filiales-bc.md └── 10-supporting-bcs.md ``` ## Nächste Schritte 1. ✅ Bounded Contexts dokumentieren 2. ✅ Aggregates für Core BCs modellieren 3. ⏳ Invarianten detailliert ausarbeiten 4. ⏳ Java-Code generieren 5. ⏳ Validierung durchführen ## Referenzen - Feature-Definition: `docs/mvp/2026-02-15-fleischerei-erp-feature-definition.md` - Abhängigkeitsanalyse: `docs/mvp/2026-02-16-abhangigkeitsanalyse-fleischerei-erp.md` - Java Style Guide: `.claude/skills/ddd-model/languages/java/style-guide.md` - DDD Rules: `.claude/skills/ddd-model/rules/ddd-rules.md`