Init: RoggioApp Architecture, Prisma Schema, API MVP

This commit is contained in:
Clara Zetkin
2026-04-26 19:42:42 +02:00
commit 193b29e8a9
5256 changed files with 1446953 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
# 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.