Fleet-Epic vollständig, Inventory-Epic begonnen (INV-005..007 folgen). Zwei konkrete Funde beim MABEA-Abgleich: FLEET-003 (Kilometerstand) hat in MABEA keine Rückwärtslauf-Validierung; INV-004 (Chargenverwaltung) wäre in MABEA kein Nachzug sondern ein struktureller Umbau (Objektposition führt aktuell nur eine Charge/Ablaufdatum, nicht mehrere gleichzeitig). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
6.0 KiB
6.0 KiB
Epic 05 — Fleet
Details zu FLEET-001 … FLEET-006 (vollständig).
FLEET-001 — Fahrzeugtypen
- Ziel: Fahrzeugspezifische Typebene oberhalb AssetType.
- Beschreibung: Fahrzeugtyp-Stammdaten (z.B. „GW-San", „MTW"), verweist auf AssetType.
- Benutzerwert: Vorlage für Fahrzeug-Anlage, ähnliche Fahrzeuge gruppiert.
- Abhängigkeiten: ASSET-002
- Datenmodell:
fahrzeugtyp(id, asset_type_id, ...) oder Erweiterungsfelder anasset_type - Backend: CRUD
- Frontend: Verwaltung
- Mobile: Anzeige
- QR-Code/Seriennummer/Inventarnummer: nein
- Akte: Stammdatenbereich
- Rechte: Materialwart/Administrator
- Audit: Änderung geloggt
- Akzeptanzkriterien: Fahrzeugtyp anlegen, Verknüpfung zu AssetType.
- Tests: CRUD-Test.
- DoD: mind. ein Fahrzeugtyp angelegt.
FLEET-002 — Fahrzeuge (Kennzeichen/Funkrufname)
- Ziel: Fahrzeug-Spezialfelder am Asset.
- Beschreibung: Kennzeichen, Fahrgestellnummer, Funkrufname als 1:1-Erweiterungstabelle zu Asset.
- Benutzerwert: Fahrzeuge sind die wichtigste Ressourcenklasse im Rettungsdienst — eigene Kennfelder sind Pflicht.
- Abhängigkeiten: ASSET-003, FLEET-001
- Datenmodell:
fahrzeugdetails(asset_id, kennzeichen, fahrgestellnummer, funkrufname) - Backend: CRUD/Upsert
- Frontend: Formular
- Mobile: Anzeige
- QR-Code: Kennzeichen kann Klartext-Fallback auf dem Label sein
- Seriennummer/Inventarnummer: ergänzend, siehe Asset-Kernfelder
- Akte: Fahrzeug-spezifischer Stammdatenbereich
- Rechte: Materialwart/Administrator
- Audit: Änderung geloggt
- Akzeptanzkriterien: Felder setzen/anzeigen funktioniert.
- Tests: CRUD-Test.
- DoD: deckt sich mit MABEA
fahrzeugdetails(bereits umgesetzt, diente hier als Vorbild).
FLEET-003 — Kilometerstand/Betriebsstunden
- Ziel: Nutzungsgrad des Fahrzeugs erfassen (Basis für km-/std-abhängige Wartungsintervalle, MAINT-002).
- Beschreibung: Felder + Erfassungsverlauf (nicht nur aktueller Wert, sondern Verlauf der Meldungen).
- Benutzerwert: Grundlage für Wartungsplanung.
- Abhängigkeiten: FLEET-002
- Datenmodell:
fahrzeugdetails.kilometerstand/betriebsstunden(aktuell) + optionalkm_stand_historie - Backend: Update-Endpoint mit Plausibilitätsprüfung
- Frontend: Eingabefeld bei Kontrolle/Rückkehr
- Mobile: Eingabe im Feld (nach Fahrt)
- QR-Code/Seriennummer/Inventarnummer: nein
- Akte: Stammdatenbereich
- Rechte: jeder Fahrzeugnutzer darf melden (breiter als reine Materialwart-Rechte), Korrektur nur Administrator
- Audit: Änderung geloggt
- Akzeptanzkriterien: Wert kann nur steigen (Validierung gegen Rückwärtslauf, außer Admin-Korrektur-Override).
- Tests: Validierungstest (Rückwärtslauf abgelehnt, Override funktioniert).
- DoD: funktioniert, Validierung greift nachweisbar.
FLEET-004 — Fahrzeugstatus (5-stufig)
- Ziel: Fahrzeug-spezifische Verfeinerung von ASSET-004.
- Beschreibung: einsatzbereit/eingeschränkt/nicht einsatzbereit/in Wartung/außer Dienst — die ersten drei rechnerisch aus der Readiness-Engine (READY-002), die letzten zwei manuell gesetzt.
- Benutzerwert: Differenziertere Aussage als der generische Asset-Status.
- Abhängigkeiten: FLEET-002, READY-002
- Datenmodell: kein Extra-Feld nötig, wenn ASSET-004 generisch genug + Readiness-Overlay reicht — sonst eigenes Statusfeld
- Backend: Statuswechsel + Readiness-Kopplung
- Frontend: Status-Anzeige/-Dropdown
- Mobile: Anzeige
- QR-Code/Seriennummer/Inventarnummer: nein
- Akte: Stammdatenbereich
- Rechte: manuelle Zustände (Wartung/außer Dienst) nur Materialwart/Administrator
- Audit: Statuswechsel geloggt
- Akzeptanzkriterien: 5 Zustände korrekt unterscheidbar, rechnerischer vs. manueller Anteil klar getrennt.
- Tests: Statustest je Zustand.
- DoD: deckt sich vollständig mit MABEA (bereits umgesetzt:
ObjektStatusinkl.in_wartung+ Readiness-Berechnung im Dashboard).
FLEET-005 — Fahrzeug-Dokumente
- Ziel: Fahrzeugpapiere/Zulassung digital anhängen.
- Beschreibung: Nutzt DOC-001 generisch, hier nur die Fach-Kopplung/Anzeige in der Fahrzeug-Akte.
- Benutzerwert: Zulassungsbescheinigung/Versicherungsnachweis griffbereit.
- Abhängigkeiten: FLEET-002, DOC-001
- Datenmodell: keins neu (nutzt Dokument-Polymorphie)
- Backend: keins zusätzlich
- Frontend: Dokumente-Panel in der Fahrzeug-Akte
- Mobile: Anzeige
- QR-Code/Seriennummer/Inventarnummer: nein
- Akte: Dokumentenbereich
- Rechte: wie DOC-001
- Audit: wie DOC-001
- Akzeptanzkriterien: Dokument an Fahrzeug hochladen/anzeigen.
- Tests: Integrationstest mit DOC-001.
- DoD: entspricht MABEA (DokumentePanel bereits generisch wiederverwendbar, funktioniert unverändert für Fahrzeuge).
FLEET-006 — Fahrzeug-Einsatzhistorie (Platzhalter, P3)
- Ziel: Welche Einsätze ein Fahrzeug gefahren ist.
- Beschreibung: Platzhalter-Kachel — echte Umsetzung hängt vom noch nicht entworfenen Operations-Epic ab.
- Benutzerwert: Nutzungsnachweis/Auslastungsstatistik.
- Abhängigkeiten: FLEET-002, OPS-002
- Datenmodell / Backend / Frontend / Mobile / QR / SN / Inv / Akte / Rechte / Audit: TBD — nicht sinnvoll spezifizierbar vor OPS-001/002.
- Akzeptanzkriterien: TBD.
- Tests: TBD.
- DoD: DECISION REQUIRED: diese Kachel bleibt bewusst Platzhalter, erst bei tatsächlichem Angehen des Operations-Epics neu aufsetzen statt jetzt blind zu spezifizieren.
MABEA-Ist-Stand-Abgleich: FLEET-001…005 sind praktisch 1:1 in MABEA vorhanden
(Objekttyp mit ist_zugfahrzeug, fahrzeugdetails-Tabelle, 5-stufiger ObjektStatus,
generisches DokumentePanel). Einzige offene Lücke: FLEET-003s Plausibilitätsprüfung
(„Kilometerstand darf nicht sinken") ist in MABEA nicht validiert — reiner
Zahlen-Input ohne Rückwärtslauf-Schutz. Kleine, konkrete Nachbesserung, keine neue Kachel
nötig. FLEET-006 ist in MABEA (noch) nicht relevant, da kein Operations-Epic existiert.