Zum Inhalt

DB-Schema-Detailprüfung UC03 – Füll-Abo & Füllkarten-Verwaltung

Stand: 01.08.2026 14:55 Branch: docs/einheitliche-kopfbereiche Status: Abgeschlossen; Gegen vorhandene UC03-Spezifikation und Prisma-Zielschema v3 konzeptionell geprüft

Datum, Uhrzeit Version Änderung Autor
01.08.2026 14:55 1.0 Kopfbereich vereinheitlicht David Mittig
01.08.2026 11:12 1.0 Kopfbereich ergänzt David Mittig

1. Prüfgrundlage

Geprüft wurde gegen:

  • docs/developer/uc03/uc03-spezifikation.md,
  • backend/prisma/schema.prisma v3,
  • docs/developer/uc00/db-schema-zielbild-uc-matrix.md,
  • docs/developer/db-schema.md v6,
  • docs/management/roadmap.md.

Korrekturhinweis:

Die frühere Fassung dieser Detailprüfung enthielt die falsche Aussage, dass keine eigene UC03-Spezifikation gefunden wurde. Die Spezifikation existiert und wurde in dieser Nachprüfung berücksichtigt.

2. Fachlicher UC-Zweck aus der Spezifikation

UC03 ermöglicht Tauchschulen, Füll-Abos, Füllkarten, Guthaben und einzelne Füllvorgänge auf Kundenebene zu verwalten.

Die Spezifikation beschreibt ausdrücklich ein gemeinsames Füllkonto- und Ledger-Modell. Dabei werden Füllkonto, Füllvorgang und Ledger-Buchungen als zentrale fachliche Wahrheit für Guthaben und Verbrauch definiert.

3. Spezifikationsanforderungen gegen Prisma-Zielschema

Anforderung UC03 Prisma-Zielschema v3 Bewertung
gemeinsames Füllkonto-Modell FillSubscription + FillCard getrennt abweichend
Ledger als fachliche Wahrheit FillCardTransaction nur teilweise abbildbar
fill_accounts nicht vorhanden Abweichung
fill_transactions nicht vorhanden Abweichung
fill_ledger_entries nicht vorhanden Abweichung
Anzahlkarte FillCard teilweise abbildbar
Bonuskarte 10+3 keine separaten Felder paid_units, bonus_units nicht vollständig
Punktekarte remainingCredits als Int nur eingeschränkt
Einzel-Füllung ohne dauerhaftes Füllkonto aktuell schwierig, da FillCardTransaction.fillCardId Pflicht ist Abweichung
Korrektur / Storno über Gegenbuchung FillCardTransactionType.correction vorhanden teilweise
append-only Ledger nicht als eigenes Ledger modelliert Abweichung
Gasart gasMix Textfeld teilweise
Nitrox-Detaildaten FO₂ / Analyse nicht vorhanden offen
Offline / Konfliktstatus über SyncQueue allgemein teilweise

4. Feld-für-Feld-Bewertung

4.1 Aktuelles Prisma-Zielschema

Aktuell vorhanden:

  • FillSubscription,
  • FillCard,
  • FillCardTransaction,
  • FillSubscriptionStatus,
  • FillCardStatus,
  • FillCardTransactionType.

Bewertung:

  • Das Schema bildet ein einfaches V1-Füllkartenmodell ab.
  • Es bildet nicht das in UC03 beschriebene gemeinsame Füllkonto-/Ledger-Modell vollständig ab.

4.2 Fehlende Spezifikationsfelder

In der UC03-Spezifikation beschriebene Felder, die im Prisma-Zielschema v3 nicht oder nicht sauber vorhanden sind:

  • account_type,
  • balance_type,
  • gas_scope,
  • paid_units,
  • bonus_units,
  • initial_balance,
  • current_balance als Ledger-abgeleiteter Komfortwert,
  • fill_model,
  • consumption_units,
  • fo2,
  • analysis_confirmed_by,
  • sync_status,
  • balance_before,
  • balance_after,
  • related_entry_id,
  • reason als Pflichtgrund bei Korrektur / Storno.

5. Harte oder relevante Abweichungen

Punkt Bewertung Empfehlung
Spezifikation fordert fill_accounts Prisma hat FillSubscription und FillCard Zielmodell entscheiden
Spezifikation fordert Ledger als Wahrheit Prisma hat nur FillCardTransaction FillLedgerEntry prüfen
Einzel-Füllung ohne Füllkonto Prisma benötigt fillCardId fillCardId optional oder eigenes FillTransaction ergänzen
Bonus-/Punktemodell Prisma zu einfach Felder oder generisches Kontomodell ergänzen
Nitrox-Daten fehlen V1-Entscheidung nötig
Offline-Konfliktstatus nicht direkt auf UC03-Tabellen Sync-Konzept präzisieren

6. Ergebnis

UC03 ist im Prisma-Zielschema v3 nicht vollständig gemäss vorhandener Spezifikation abgebildet.

Das aktuelle Prisma-Zielschema v3 bildet einen vereinfachten Füllkarten-/Füllabo-Kern ab, weicht aber vom in UC03 beschriebenen Füllkonto-/Ledger-Zielmodell ab.

Korrekte Statusformulierung:

UC03 ist gegen die vorhandene Spezifikation geprüft. Das Prisma-Zielschema v3 deckt einen einfachen UC03-V1-Kern ab, ist aber nicht vollständig konsistent mit dem spezifizierten Füllkonto- und Ledger-Modell.

7. Offene Nacharbeit

  • [ ] Entscheidung: vereinfachtes Prisma-Modell behalten oder auf fill_accounts, fill_transactions, fill_ledger_entries umstellen.
  • [ ] Falls Spezifikation führend bleibt: Prisma-Schema für UC03 umbauen.
  • [ ] Entscheidung zu Einzel-Füllung ohne dauerhaftes Füllkonto.
  • [ ] Entscheidung zu Bonus- und Punktefeldern.
  • [ ] Entscheidung zu Nitrox-Feldern FO₂ und Analysebestätigung.
  • [ ] Entscheidung zu append-only Ledger und Korrektur-/Stornoregeln.
  • [ ] UC03-Spezifikation und Prisma-Zielschema danach synchronisieren.
  • [ ] Technische Prisma-Validierung bleibt offen.