Zum Inhalt

DB-Schema-Detailprüfung UC02 – TÜV-Inspektion einreichen

Stand: 01.08.2026 14:55 Branch: docs/einheitliche-kopfbereiche Status: Abgeschlossen; Gegen vorhandene UC02-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/uc02/uc02-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 UC02-Spezifikation gefunden wurde. Die Spezifikation existiert und wurde in dieser Nachprüfung berücksichtigt.

2. Fachlicher UC-Zweck aus der Spezifikation

UC02 bildet den Workflow ab, mit dem eine Tauchschule prüfpflichtiges Equipment, insbesondere Tauchflaschen / Druckbehälter, für eine externe wiederkehrende Prüfung vorbereitet, einreicht, den Prüfstatus nachverfolgt und das Prüfergebnis dokumentiert.

Der Use Case beginnt bei vorhandenem Equipment aus UC01 und endet mit aktualisiertem Prüfstatus, dokumentiertem Ergebnis und berechneter nächster Prüffrist.

3. Spezifikationsanforderungen gegen Prisma-Zielschema

Anforderung UC02 Prisma-Zielschema v3 Bewertung
prüfrelevantes Equipment aus UC01 Equipment, EquipmentType.cylinder, CylinderDetails abbildbar
externe Prüfung als Workflow UsecaseWorkflow abbildbar
Workflow-Typ für externe Prüfung UsecaseType.cylinder_tuv abbildbar, aber anderer Name als Spezifikationsbeispiel external_inspection
Statusverlauf append-only WorkflowHistory abbildbar
Prüfstelle / Dienstleister UsecaseWorkflow.inspectionBody, CylinderDetails.inspectionBody abbildbar als Freitext, keine eigene Dienstleister-Tabelle
Einreichdatum kein eigenes submittedAt teilweise offen
Prüfdatum UsecaseWorkflow.resultDate, CylinderDetails.tuvLast abbildbar
Ergebnis bestanden / nicht bestanden / Nacharbeit kein eigenes Ergebnis-Enum teilweise offen über status / resultNotes
nächste Prüfung CylinderDetails.tuvNext abbildbar
Nacharbeit / Sperre Equipment.status, dataQualityStatus, UsecaseWorkflow.status teilweise abbildbar
Prüfhistorie je Equipment UsecaseWorkflow, WorkflowHistory abbildbar
Audit-Log AuditLog abbildbar
Dokumente / Zertifikate documents bewusst V2 korrekt abgegrenzt

4. Feld-für-Feld-Bewertung

4.1 Equipment und CylinderDetails

UC02 fordert, dass nur prüfrelevantes Equipment eingereicht wird. Das ist über folgende Felder abbildbar:

  • Equipment.tenantId,
  • Equipment.equipmentType,
  • Equipment.status,
  • Equipment.dataQualityStatus,
  • Equipment.isArchived,
  • Equipment.deletedAt,
  • CylinderDetails.tuvLast,
  • CylinderDetails.tuvNext,
  • CylinderDetails.normReference,
  • CylinderDetails.inspectionBody,
  • CylinderDetails.inspectorId.

Bewertung:

  • Der Kern ist konzeptionell ausreichend.
  • Die Regel „Equipment mit unknown darf nicht eingereicht werden" ist über EquipmentType.unknown prüfbar.
  • Die Spezifikation nennt needs_review; im Prisma-Zielschema ist dies als EquipmentDataQualityStatus.needs_review vorhanden.

4.2 UsecaseWorkflow

UC02 beschreibt beispielhafte Felder wie:

  • workflow_type,
  • workflow_status,
  • inspection_provider,
  • submitted_at,
  • inspection_date,
  • inspection_result,
  • next_due_date,
  • notes.

Im Prisma-Zielschema v3 sind dazu vorhanden:

  • usecaseType,
  • status,
  • inspectionBody,
  • resultDate,
  • resultNotes,
  • openedAt,
  • completedAt,
  • cancelledAt,
  • costAmount,
  • costCurrency,
  • isLocked,
  • correctionOfId,
  • correctionNote.

Bewertung:

  • Der Workflow ist grundsätzlich abbildbar.
  • submitted_at fehlt als eigenes Feld. Es kann aktuell nur über openedAt, WorkflowHistory oder einen Statuswechsel abgeleitet werden.
  • inspection_result fehlt als eigenes Enum/Feld. Das Ergebnis muss aktuell über status und resultNotes modelliert werden.
  • Das UC02-Statusmodell (submitted, passed, failed, rework_required) ist im aktuellen WorkflowStatus nicht vollständig enthalten.

5. Harte oder relevante Abweichungen

Punkt Bewertung Empfehlung
UC02-Statusmodell umfangreicher als WorkflowStatus relevante Abweichung WorkflowStatus erweitern oder UC02-Ergebnis separat modellieren
submitted_at fehlt relevante Lücke eigenes Feld ergänzen oder verbindlich über History abbilden
inspection_result fehlt relevante Lücke Ergebnis-Enum oder Workflow-Ergebnisfeld prüfen
Prüfstelle-Liste laut Spezifikation vorbereitet Prisma hat nur Freitext V1 akzeptabel, spätere Prüfstelle-Tabelle offen
Sammel-Prüfauftrag mit mehreren Equipment-Positionen Prisma UsecaseWorkflow hat nur ein equipmentId wichtige Abweichung

6. Wichtigster Nachbefund: Sammel-Prüfauftrag

Die UC02-Spezifikation entscheidet, dass ein Prüfauftrag mehrere Tauchflaschen enthalten darf. Das aktuelle Prisma-Zielschema v3 modelliert UsecaseWorkflow.equipmentId als einzelne optionale Equipment-Referenz.

Bewertung:

  • Einzelprüfungen sind abbildbar.
  • Sammel-Prüfaufträge sind nicht sauber relational abbildbar.

Empfehlung:

  • Für UC02 V1 entweder Sammel-Prüfauftrag auf spätere Version verschieben,
  • oder eine Positionstabelle ergänzen, z. B. workflow_items mit workflow_id, equipment_id, positionsbezogenem Ergebnis und Notiz.

7. Ergebnis

UC02 ist im Prisma-Zielschema v3 für Einzel-Prüfaufträge konzeptionell abbildbar.

UC02 ist nicht vollständig gemäss Spezifikation abgebildet, solange Sammel-Prüfaufträge, detailliertes UC02-Statusmodell, submitted_at und inspection_result nicht entschieden oder nachmodelliert sind.

Korrekte Statusformulierung:

UC02 ist gegen die vorhandene Spezifikation geprüft. Das Prisma-Zielschema v3 deckt den V1-Kern für einzelne externe TÜV-Prüfworkflows ab, weist aber Abweichungen bei Sammel-Prüfaufträgen, Statusmodell und Ergebnisfeldern auf.

8. Offene Nacharbeit

  • [ ] Entscheidung: Sammel-Prüfauftrag in V1 ja/nein.
  • [ ] Falls ja: workflow_items oder vergleichbare Positionstabelle ergänzen.
  • [ ] Entscheidung: WorkflowStatus erweitern oder UC02-spezifisches Ergebnisfeld ergänzen.
  • [ ] Entscheidung: eigenes submittedAt ergänzen oder über History definieren.
  • [ ] UC02-Spezifikation und Prisma-Zielschema danach synchronisieren.
  • [ ] Technische Prisma-Validierung bleibt offen.