Files
RoggioApp/Brainstorm/260426/16_Weg2_SubUnits_als_Inventar.md
T
2026-04-26 19:42:42 +02:00

1.4 KiB
Executable File

RoggioApp - Beschluss: Weg 2 (Alles ist eine Unit)

Der Entschluss

Wir nutzen Weg 2 für jedes Inventar, bei dem Bestände, Schwund oder Nachbestellungen (Soll/Ist) relevant sind. Das bedeutet: Wir verpacken Inventar nicht in unübersichtliche JSON-Arrays innerhalb eines Raums, sondern machen jedes relevante Inventar zu einer eigenen Child-Unit.

Warum das die mächtigste Entscheidung ist

  1. Historie (Audit-Trail): Wenn "5 Löffel fehlen" als JSON in der Küche steht, weiß niemand, wann das passiert ist. Wenn der Löffel-Bestand eine eigene Unit ist, kann ein Event ("Inventur nach Abreise von Rossi") mit der Löffel-Unit verknüpft werden. Man sieht exakt: Am 26.04. hat Sarah 5 fehlende Löffel eingetragen.
  2. Modularität: Ein Grill (Unit) kann heute zur Wohnung 1 (Parent) gehören und morgen auf dem Zirkuswagen-Platz (neuer Parent) stehen. Hätten wir den Grill als JSON in Wohnung 1 geschrieben, müssten wir JSON manipulieren. So verschieben wir einfach die parentId.
  3. Wartung & Defekte: Eine Spülmaschine (Unit) kann den Trait status: "broken" bekommen. Das generiert automatisch ein Event (Task: Reparatur) für die Support-Gang.

Das Datenmodell bleibt unberührt

Es beweist die Stärke des Modells: Obwohl wir gerade die Verwaltung von Besteck, Gasflaschen und Spülmaschinen beschlossen haben, müssen wir in schema.prisma nichts ändern. Die Unit-Tabelle fängt das komplett ab.