DB-Seeding: Default-Werte beim ersten App-Start (Keller + Standardkategorien) #54

Closed
opened 2026-05-16 11:31:06 +00:00 by jreinemann-euris · 1 comment
jreinemann-euris commented 2026-05-16 11:31:06 +00:00 (Migrated from github.com)

Ziel

Beim ersten App-Start (komplett leere Datenbank, keine Migration) sollen Default-Daten automatisch eingefügt werden, damit der User sofort loslegen kann.

Anforderungen

Lagerort

  • Default-Lagerort Keller wird beim DB-Erstellen automatisch angelegt
  • Wenn nur ein Lagerort vorhanden ist, kann dieser nicht im Artikel-Formular ausgewählt werden – er wird stattdessen automatisch vorausgewählt und das Feld wird als schreibgeschütztes Textfeld dargestellt (kein Dropdown)

Kategorien

Beim DB-Erstellen werden folgende Kategorien automatisch eingefügt:

  • Lebensmittel
  • Wasser
  • Medikamente
  • Ausrüstung
  • Hygiene
  • Energie & Licht
  • Dokumente

Technische Umsetzung

  • RoomDatabase.Callback.onCreate in DatabaseModule – wird nur bei einer frisch angelegten DB ausgeführt, nie bei Migrationen
  • Seeding via SupportSQLiteDatabase.execSQL (kein DAO-Zugriff nötig)
  • ItemFormViewModel: Bei Location-Laden wird locationId automatisch gesetzt, wenn genau 1 Location vorhanden und locationId noch null
  • ItemFormScreen.LocationDropdown: Zeigt bei locations.size <= 1 ein reines Textfeld statt eines Dropdowns

Abgrenzung

Berührt nicht die Lagerort- und Kategorie-Verwaltungsscreens (Hotfix #51 zuständig).

## Ziel Beim ersten App-Start (komplett leere Datenbank, keine Migration) sollen Default-Daten automatisch eingefügt werden, damit der User sofort loslegen kann. ## Anforderungen ### Lagerort - Default-Lagerort **Keller** wird beim DB-Erstellen automatisch angelegt - Wenn nur **ein Lagerort** vorhanden ist, kann dieser nicht im Artikel-Formular ausgewählt werden – er wird stattdessen **automatisch vorausgewählt** und das Feld wird als schreibgeschütztes Textfeld dargestellt (kein Dropdown) ### Kategorien Beim DB-Erstellen werden folgende Kategorien automatisch eingefügt: - Lebensmittel - Wasser - Medikamente - Ausrüstung - Hygiene - Energie & Licht - Dokumente ## Technische Umsetzung - RoomDatabase.Callback.onCreate in DatabaseModule – wird **nur** bei einer frisch angelegten DB ausgeführt, nie bei Migrationen - Seeding via SupportSQLiteDatabase.execSQL (kein DAO-Zugriff nötig) - ItemFormViewModel: Bei Location-Laden wird locationId automatisch gesetzt, wenn genau 1 Location vorhanden und locationId noch null - ItemFormScreen.LocationDropdown: Zeigt bei locations.size <= 1 ein reines Textfeld statt eines Dropdowns ## Abgrenzung Berührt **nicht** die Lagerort- und Kategorie-Verwaltungsscreens (Hotfix #51 zuständig).
jreinemann-euris commented 2026-05-16 16:52:11 +00:00 (Migrated from github.com)

Duplikat von #55 – schließe dieses Issue.

Duplikat von #55 – schließe dieses Issue.
Sign in to join this conversation.
No description provided.