# Ubiquitous Language - Glossar

**Datum:** 2026-02-17

Diese Datei definiert die **Ubiquitous Language** für jeden Bounded Context. Diese Begriffe müssen im Code (Klassennamen, Methoden, Variablen) exakt so verwendet werden.

---

## Production BC

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| Rezept | Recipe | Aggregate | Mehrstufige Anleitung zur Herstellung eines Produkts aus Rohstoffen und Zwischenprodukten |
| Zutat | Ingredient | Entity | Rohstoff oder Zwischenprodukt, das in einem Rezept verwendet wird. Position bestimmt die Reihenfolge |
| Produktionsschritt | ProductionStep | Entity | Einzelner Arbeitsschritt in einer Rezeptur mit optionaler Dauer und Temperaturangabe |
| Rezepttyp | RecipeType | Value Object | Klassifizierung: RAW_MATERIAL, INTERMEDIATE (Zwischenprodukt) oder FINISHED_PRODUCT (Endprodukt) |
| Ausbeute | YieldPercentage | Value Object | Verhältnis Input→Output in % (1-200%). >100% bei Pökel-/Spritzprozessen. Bei 80% Ausbeute braucht man 125kg Input für 100kg Output |
| Haltbarkeitsdauer | ShelfLifeDays | Value Object | Anzahl Tage ab Produktionsdatum bis MHD. Definiert im Rezept, angewandt bei Chargen-Erzeugung |
| Unter-Rezept | SubRecipe | Concept | Verweis auf ein anderes Rezept (INTERMEDIATE), das als Zutat verwendet wird. Ermöglicht verschachtelte Rezepturen |
| Rezeptur-Version | Recipe Version | Value Object | Versionsnummer eines Rezepts. Neue Version = neues Recipe-Objekt, altes wird archiviert |
| Charge | Batch | Aggregate | Eindeutig identifizierte Produktionseinheit mit Chargennummer, Datum, Rezept, Mengen und Genealogie |
| Chargennummer | BatchNumber | Value Object | Formatierte eindeutige Kennung einer Charge (Format: "P-YYYY-MM-DD-XXX"). Generiert über BatchNumberGenerator |
| Verbrauch | Consumption | Entity | Dokumentation, dass eine Input-Charge (Rohstoff/Zwischenprodukt) in einer Produktions-Charge verwendet wurde. Bildet die Chargen-Genealogie |
| Chargen-Genealogie | Batch Genealogy | Concept | Gesamtheit aller Consumption-Beziehungen einer Charge. Ermöglicht Vorwärts- und Rückwärts-Tracing |
| Vorwärts-Tracing | Forward Tracing | Concept | Ausgehend von einer Rohstoff-Charge: Welche Endprodukt-Chargen sind betroffen? Kritisch für Rückruf-Szenarien |
| Rückwärts-Tracing | Backward Tracing | Concept | Ausgehend von einer Endprodukt-Charge: Welche Rohstoff-Chargen wurden verwendet? |
| Rückverfolgbarkeit | Traceability | Concept | Lückenlose Dokumentation der Kette: Rohstoff-Charge → Produktions-Charge → Verkauf. HACCP-Pflicht |
| Zwischenprodukt | Intermediate Product | Concept | Produkt, das in Rezept A hergestellt wird und als Zutat in Rezept B verwendet wird (z.B. Brät, Gewürzmischung) |
| Ausschuss | Waste | Value Object | Menge an Material, die während Produktion verloren geht (Schwund, Knochen, Fett-Trimmen) |
| Produktionsauftrag | ProductionOrder | Aggregate | Geplante zukünftige Produktion mit Rezept, Menge, Termin und Priorität. Erzeugt bei Start eine Charge |
| Priorität | Priority | Value Object | Dringlichkeit eines Produktionsauftrags: LOW, NORMAL, HIGH, URGENT |
| Freigabe | Release | Concept | Übergang eines Produktionsauftrags von PLANNED zu RELEASED. Signalisiert, dass Material verfügbar ist |
| Catch-Weight | Dual Quantity | Concept | Doppelte Mengenführung für Artikel, die stückweise UND gewichtsweise erfasst werden (z.B. "10 Stück à 2,3 kg") |
| MHD | BestBeforeDate | Value Object | Mindesthaltbarkeitsdatum einer Charge. Berechnet: ProductionDate + Recipe.ShelfLifeDays |
| Materialbedarf | Material Requirement | Concept | Aus Rezeptur berechnete Rohstoffmenge unter Berücksichtigung der Ausbeute. Ausgelöst durch ProductionOrderReleased |

---

## Quality BC (HACCP/QM)

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| HACCP | HACCP | Concept | Hazard Analysis Critical Control Points - systematische Präventivmaßnahmen für Lebensmittelsicherheit |
| Kritischer Kontrollpunkt | Critical Control Point (CCP) | Concept | Stelle im Prozess, an der Kontrolle notwendig ist, um Gefahren zu vermeiden |
| Temperaturprotokoll | TemperatureLog | Aggregate | Standortbezogene Temperaturmessung an kritischem Punkt (Kühlraum, Theke) mit Grenzwertüberwachung |
| Messpunkt | MeasurementPoint | VO (Enum) | Physischer Ort der Messung: COLD_ROOM, FREEZER, DISPLAY_COUNTER, PRODUCTION_ROOM |
| Temperatur | Temperature | Value Object | Temperaturwert in °C mit physikalisch plausiblem Bereich (-50 bis +50) |
| Kritischer Grenzwert | CriticalLimit | Value Object | Min-/Max-Paar für einen CCP (z.B. Kühlraum 2-7°C). Mindestens ein Limit muss gesetzt sein |
| Reinigungsplan | CleaningPlan | Aggregate | Vorlage für Reinigungsaufgaben mit Bereich, Intervall und Checklisten-Template |
| Reinigungsintervall | CleaningInterval | VO (Enum) | Turnus einer Reinigung: DAILY, WEEKLY, MONTHLY |
| Reinigungsnachweis | CleaningRecord | Aggregate | Durchgeführte Reinigung gegen einen CleaningPlan mit abgehakter Checkliste |
| Checklisten-Eintrag | ChecklistItem | Entity | Einzelner Prüfpunkt in einer Reinigung oder Inspektion |
| Wareneingangskontrolle | GoodsReceiptInspection | Aggregate | Mehrteilige Prüfung bei Warenanlieferung (Temperatur, Sicht, MHD, Dokumente) |
| Temperaturprüfung | TemperatureCheck | Value Object | Temperaturmessung bei Wareneingang mit Soll-/Ist-Vergleich |
| Sichtkontrolle | VisualCheck | Value Object | Prüfung von Verpackung, Farbe, Geruch bei Wareneingang |
| MHD-Prüfung | ShelfLifeCheck | Value Object | Prüfung des Mindesthaltbarkeitsdatums gegen Mindest-Restlaufzeit |
| Dokumentenprüfung | DocumentCheck | Value Object | Prüfung von Lieferschein, Veterinärbescheinigung, Zertifikaten |
| Probenentnahme | SampleRecord | Aggregate | Probenentnahme mit Analyseergebnis, Charge und Prüfmethode |
| Probenart | SampleType | VO (Enum) | Klassifizierung: MICROBIOLOGICAL, CHEMICAL, PHYSICAL, SENSORY |
| Analyseergebnis | AnalysisResult | Value Object | Messergebnis einer Probe mit Wert, Einheit und Interpretation |
| Schulungsnachweis | TrainingRecord | Aggregate | Nachweis einer absolvierten Schulung mit Gültigkeitsdatum und Trainer |
| Schulungsart | TrainingType | VO (Enum) | Klassifizierung: HACCP, HYGIENE, FOOD_SAFETY, EQUIPMENT_OPERATION, FIRST_AID |
| Wartungsprotokoll | MaintenanceRecord | Aggregate | Dokumentation von Gerätewartungen (planmäßig, Reparatur, Kalibrierung, Inspektion) |
| Wartungsart | MaintenanceType | VO (Enum) | SCHEDULED, REPAIR, CALIBRATION, INSPECTION |
| Qualitätssperre | QualityHold | Aggregate | Sperre einer Charge bei Qualitätsproblemen. Block/Release-Pattern mit Vier-Augen-Prinzip |
| Sperrgrund | HoldReason | VO (Enum) | TEMPERATURE_DEVIATION, SAMPLE_FAILED, CONTAMINATION_SUSPECTED, PROCESS_DEVIATION, CUSTOMER_COMPLAINT, REGULATORY |
| Korrekturmaßnahme | CorrectiveAction | Entity | Maßnahme zur Behebung einer Abweichung im Rahmen eines QualityHold |
| Prozessparameter | ProcessParameter | Aggregate | Batch-bezogene CCP-Messwerte (Kerntemperatur, pH, aw-Wert, Metalldetektion) |
| CCP-Typ | CcpType | VO (Enum) | CORE_TEMPERATURE, PH_VALUE, WATER_ACTIVITY, METAL_DETECTION |
| Abweichung | Deviation | Concept | Überschreitung eines Grenzwerts oder Nichteinhaltung eines Verfahrens |
| HACCP-Report | HaccpReport | Concept | Audit-Report aggregiert aus allen Quality-Aggregates für einen Zeitraum |

---

## Labeling BC

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| Allergen | Allergen | Value Object | Einer der 14 EU-Hauptallergene, die kennzeichnungspflichtig sind |
| Spurenkennzeichnung | Trace Declaration | Value Object | "Kann Spuren von X enthalten" bei gemeinsamer Verarbeitung |
| Nährwerttabelle | Nutrition Facts Table | Entity | Rechtlich vorgeschriebene Angabe von Kalorien, Fett, Eiweiß, etc. pro 100g |
| Qualitätssiegel | Quality Label | Value Object | Bio, Regional, Tierwohl-Zertifizierung |
| Herkunftskennzeichnung | Origin Labeling | Value Object | Angabe des Herkunftslandes/-region für Rohstoffe |
| Etikett | Label | Aggregate | Gedrucktes Etikett mit allen Pflichtangaben |
| Pflichtangabe | Mandatory Declaration | Concept | Rechtlich vorgeschriebene Information auf Etikett (Name, Zutaten, Allergene, MHD, Hersteller) |
| Allergenkennzeichnung | Allergen Declaration | Concept | Hervorhebung von Allergenen in Zutatenliste (z.B. **Milch**, **Gluten**) |
| Allergene Matrix | Allergen Matrix | Aggregate | Übersichtstabelle: welches Produkt enthält welche Allergene (für Aushang) |
| Zertifizierungsnummer | Certification Number | Value Object | Nummer des Bio-/Regional-/Tierwohl-Zertifikats |

---

## Inventory BC

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| Bestand | Stock | Aggregate | Aktueller Bestand eines Artikels an einem Lagerort, chargengenau mit FEFO und Reservierungen |
| Bestandscharge | StockBatch | Entity | Einzelne Charge im Bestand mit Menge, MHD und Status (AVAILABLE, EXPIRING_SOON, BLOCKED, EXPIRED) |
| Chargenreferenz | BatchReference | Value Object | Verweis auf Produktions- oder Lieferantencharge mit BatchType (PRODUCED oder PURCHASED) |
| Chargentyp | BatchType | VO (Enum) | PRODUCED (Eigenproduktion via Production BC) oder PURCHASED (Zukauf via Procurement BC) |
| Chargen-Status | StockBatchStatus | VO (Enum) | AVAILABLE, EXPIRING_SOON, BLOCKED, EXPIRED – steuert Verfügbarkeit |
| Mindestbestand | MinimumLevel | Value Object | Mindestmenge, bei Unterschreitung wird StockLevelBelowMinimum Event ausgelöst |
| Mindest-Resthaltbarkeit | MinimumShelfLife | Value Object | Konfigurierbare Tage bis MHD, ab der eine Charge als EXPIRING_SOON markiert wird |
| FEFO | First-Expired-First-Out | Concept | Entnahme/Reservierung priorisiert nach nächstem MHD (ältestes zuerst) |
| Verfügbarer Bestand | AvailableStock | Concept | SUM(AVAILABLE Chargen) minus SUM(Reservierungen). Darf nicht negativ werden |
| Reservierung | Reservation | Entity | Reservierte Menge für einen Produktionsauftrag oder Kundenauftrag mit Priorität |
| Reservierungspriorität | ReservationPriority | VO (Enum) | URGENT, NORMAL, LOW – bestimmt Zuteilungsreihenfolge bei Knappheit |
| Referenztyp | ReferenceType | VO (Enum) | PRODUCTION_ORDER oder SALE_ORDER – wofür reserviert wurde |
| Chargen-Zuteilung | StockBatchAllocation | Entity | Zuordnung einer reservierten Menge zu einer konkreten StockBatch (per FEFO ausgewählt) |
| Bestandsbewegung | StockMovement | Aggregate | Immutabler Audit-Trail einer Bestandsveränderung mit Chargen-Rückverfolgbarkeit |
| Bewegungstyp | MovementType | VO (Enum) | GOODS_RECEIPT, PRODUCTION_OUTPUT, PRODUCTION_CONSUMPTION, SALE, INTER_BRANCH_TRANSFER, WASTE, ADJUSTMENT, RETURN |
| Bewegungsrichtung | MovementDirection | VO (Enum) | IN (Zugang) oder OUT (Abgang) – abgeleitet aus MovementType |
| Inventur | InventoryCount | Aggregate | Physische Bestandsaufnahme pro Lagerort mit Soll/Ist-Abgleich und automatischer Differenzbuchung |
| Zählposition | CountItem | Entity | Einzelne Position in einer Inventur: Artikel, Soll-Menge, Ist-Menge, berechnete Abweichung |
| Lagerort | StorageLocation | Aggregate | Konfigurierbarer physischer Lagerort mit Typ und optionalem Temperaturbereich |
| Lagertyp | StorageType | VO (Enum) | COLD_ROOM, FREEZER, DRY_STORAGE, DISPLAY_COUNTER, PRODUCTION_AREA |
| Temperaturbereich | TemperatureRange | Value Object | Min-/Max-Temperatur eines Lagerorts in °C (-50 bis +80) |
| Schwund | Shrinkage | Concept | Bestandsverlust durch Verderb, Bruch, Diebstahl – erfasst als WASTE-StockMovement |
| Vier-Augen-Prinzip | Four-Eyes Principle | Concept | Inventur: CompletedBy muss sich von InitiatedBy unterscheiden |

---

## Procurement BC

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| Bestellung | Purchase Order | Aggregate | Bestellung an Lieferant mit Artikeln, Mengen, Liefertermin |
| Wareneingang | Goods Receipt | Aggregate | Annahme und Erfassung gelieferter Ware mit Qualitätsprüfung |
| Lieferanten-Chargennummer | Supplier Batch Number | Value Object | Chargen-Nummer des Lieferanten für Rückverfolgbarkeit |
| Bedarfsplanung | Demand Planning | Aggregate | Berechnung des Einkaufsbedarfs aus Produktionsplan und Lagerbestand |
| Lieferschein | Delivery Note | Value Object | Vom Lieferanten mitgeliefertes Dokument |
| Veterinärbescheinigung | Veterinary Certificate | Value Object | Gesetzlich vorgeschriebenes Dokument für Fleischwaren |
| Qualitätszertifikat | Quality Certificate | Value Object | Bio-, Regional-, Tierwohl-Zertifikat des Lieferanten |
| Bestellmenge | Order Quantity | Value Object | Bestellte Menge (kann von empfangener Menge abweichen) |
| Mindestbestellmenge | Minimum Order Quantity | Value Object | Vom Lieferanten vorgegebene Mindestmenge |
| Zahlungsziel | Payment Terms | Value Object | Vereinbarte Zahlungsfrist (z.B. "Netto 30 Tage") |
| Lieferantenbewertung | Supplier Rating | Entity | Bewertung nach Qualität, Pünktlichkeit, Preis-Leistung |

---

## Filiales BC

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| Filiale | Branch | Aggregate | Standort mit eigenem Bestand, ggf. eigener Produktion/Verkauf |
| Filialtyp | Branch Type | Value Object | PRODUCTION_AND_SALES, SALES_ONLY, PRODUCTION_ONLY |
| Interfilial-Transfer | Inter-Branch Transfer | Aggregate | Warenversand von Filiale A nach Filiale B mit Chargen-Tracking |
| Zentrale Produktion | Central Production | Concept | Produktion an einem Standort für Belieferung mehrerer Filialen |
| Verteilungsplan | Distribution Plan | Aggregate | Plan zur Verteilung eines Produktionsbatches an mehrere Filialen |
| Liefertermin | Delivery Date | Value Object | Geplanter oder tatsächlicher Liefertermin für Interfilial-Transfer |
| Transportdokument | Transport Document | Value Object | Lieferschein für interne Lieferung zwischen Filialen |
| Filiallager | Branch Warehouse | Concept | Lagerbestand einer spezifischen Filiale |

---

## Master Data BC

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| Artikel | Article | Aggregate | Produkt oder Rohstoff mit Stammdaten |
| Verkaufseinheit | Sales Unit | Entity | Einheit, in der Artikel verkauft wird (Stück, kg, 100g) |
| Preismodell | Price Model | Value Object | FIXED (fester Preis) oder WEIGHT_BASED (Preis × Gewicht) |
| Lieferant | Supplier | Aggregate | Geschäftspartner, von dem Waren bezogen werden |
| Kunde | Customer | Aggregate | Geschäftspartner, an den Waren verkauft werden |
| Rahmenvertrag | Frame Contract | Entity | Langfristige Vereinbarung mit Kunde über Preise/Mengen |
| Artikelnummer | Article Number (SKU) | Value Object | Eindeutige Identifikation eines Artikels |
| Produktgruppe | Product Category | Value Object | Kategorisierung von Artikeln (z.B. "Wurst", "Aufschnitt", "Frischfleisch") |
| Kundenpräferenz | Customer Preference | Value Object | Präferenz für Bio, Regional, Tierwohl, etc. |

---

## Sales BC

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| Auftrag | Order | Aggregate | Kundenauftrag (Vorbestellung oder B2B-Auftrag) |
| Auftragsart | Order Type | Value Object | PRE_ORDER (Vorbestellung), B2B_ORDER, WALK_IN (Ladenverkauf) |
| Rechnung | Invoice | Aggregate | Rechnungsdokument mit Positionen und Betrag |
| Lieferschein | Delivery Note | Aggregate | Dokument für Warenauslieferung (mit oder ohne Rechnungsfunktion) |
| Gutschrift | Credit Note | Aggregate | Stornierung oder Teilstornierung einer Rechnung |
| Zahlungsstatus | Payment Status | Value Object | OPEN, PAID, OVERDUE, CANCELLED |
| Sammelrechnung | Collective Invoice | Concept | Monatliche Zusammenfassung mehrerer Lieferungen (B2B) |

---

## Scale Integration BC

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| Waagensynchronisation | Scale Sync | Aggregate | Übertragung von Artikelstammdaten an Waage |
| Bondaten | Bond Data | Aggregate | Verkaufsdaten aus Kassensystem |
| Etikettendruck | Label Print | Concept | Druck von Etiketten an Waage mit aktuellem Gewicht |
| TSE | Technical Security Equipment | Concept | Technische Sicherheitseinrichtung für Kassensysteme (Deutschland) |

---

## Shared Concepts (BC-übergreifend)

| Begriff (DE) | Begriff (EN) | Typ | Definition |
|--------------|--------------|-----|------------|
| Menge | Quantity | Value Object | Numerischer Wert mit Einheit (kg, g, Stück, Liter) |
| Geld | Money | Value Object | Betrag mit Währung (z.B. 100 EUR) |
| Zeitstempel | Timestamp | Value Object | Datum + Uhrzeit |
| Benutzer-ID | User ID | Value Object | Eindeutige Identifikation eines Benutzers |
| Status | Status | Value Object (Enum) | Zustand eines Objekts (z.B. ACTIVE, INACTIVE, PENDING) |

---

## Naming Conventions (Java)

### Packages
```java
com.effigenix.domain.production    // Production BC
com.effigenix.domain.quality        // Quality BC
com.effigenix.domain.labeling       // Labeling BC
com.effigenix.domain.inventory      // Inventory BC
com.effigenix.domain.procurement    // Procurement BC
com.effigenix.domain.filiales       // Filiales BC (Plural!)
com.effigenix.domain.masterdata     // Master Data BC
```

### Classes (Englisch!)
```java
// Aggregates: Singular noun
Recipe, Batch, ProductionOrder
TemperatureLog, CleaningRecord
ProductLabel, AllergenMatrix
Stock, StockMovement, InventoryCount, StorageLocation
PurchaseOrder, GoodsReceipt
Branch, InterBranchTransfer

// Value Objects: Descriptive noun
RecipeId, BatchId, YieldPercentage
Temperature, CriticalLimit
AllergenType, NutritionFacts
BatchReference, MinimumLevel, MinimumShelfLife
TemperatureRange, StorageLocationName
Quantity, Money, Timestamp
```

### Methods (Englisch!)
```java
// Domain behavior (verbs)
recipe.addIngredient(...)
batch.complete(...)
stock.addBatch(...)
stock.reserve(...)
stock.confirmReservation(...)
purchaseOrder.confirm(...)

// Factory methods
Recipe.create(...)
Batch.of(...)

// Getters (no "get" prefix)
recipe.id()
batch.status()
stock.availableQuantity()
```

---

## Anti-Patterns (NICHT verwenden!)

❌ **Technische Begriffe im Domain:**
- ~~DTO~~, ~~Entity~~ (nur als Typ-Suffix in Infrastructure)
- ~~Save~~, ~~Update~~, ~~Delete~~ (stattdessen: Domain-Verben)

❌ **Abkürzungen ohne Definition:**
- ~~WE~~ → Wareneingang / Goods Receipt
- ~~BS~~ → Bestand / Stock

❌ **Deutsche Begriffe im Code:**
- ~~Rezept.java~~ → Recipe.java
- ~~addZutat()~~ → addIngredient()

✅ **Deutsche Begriffe nur in:**
- Dokumentation
- UI/UX
- User Stories
- Glossar (wie dieses Dokument)
