Nutzer-Fund: funkkenner (z.B. OPTA-Nummer) fehlte in fahrzeugdetails komplett - eigenes Feld, nicht dasselbe wie funkrufname (gesprochener Rufname vs. formale Funk-Identifikationsnummer im Digitalfunknetz). Migration 0018, Model/Schema/Frontend-Formular ergänzt. Auch im Kachel- Backlog (arbeitskacheln/05_fleet.md, FLEET-002) nachgezogen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
148 lines
7.1 KiB
Markdown
148 lines
7.1 KiB
Markdown
# 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 an
|
|
`asset_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/Funkkenner)
|
|
|
|
- **Nachtrag (Nutzer-Fund):** Funkkenner (BOS-Digitalfunk-Kennung, z.B. OPTA-Nummer) fehlte
|
|
— ist ein eigenes Feld, nicht dasselbe wie Funkrufname (gesprochener Rufname wie
|
|
„Florian München 1/44" vs. formale Funk-Identifikationsnummer im Digitalfunknetz).
|
|
- **Ziel:** Fahrzeug-Spezialfelder am Asset.
|
|
- **Beschreibung:** Kennzeichen, Fahrgestellnummer, Funkrufname, Funkkenner 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, funkkenner)
|
|
- **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 (Fahrzeug-Anwendung von ASSET-009)
|
|
|
|
- **Korrektur (Nutzer-Fund):** ursprünglich hier fälschlich als fahrzeug-eigenes
|
|
Datenmodell geplant. Betriebsstunden brauchen auch Nicht-Fahrzeuge (Stromerzeuger,
|
|
Pumpen) — der generische Zähler-Mechanismus ist jetzt **ASSET-009**. Diese Kachel ist
|
|
nur noch die Fahrzeug-spezifische Anwendung davon (Zählertyp=kilometer, UI-Einbindung in
|
|
die Fahrzeug-Akte).
|
|
- **Ziel:** Kilometerstand des Fahrzeugs im Kontroll-/Rückkehr-Ablauf erfassbar machen.
|
|
- **Beschreibung:** Fahrzeug nutzt ASSET-009 mit `zaehler_typ=kilometer`, kein eigenes
|
|
Feld/Endpoint mehr nötig.
|
|
- **Benutzerwert:** Grundlage für kilometerabhängige Wartungsplanung (MAINT-002).
|
|
- **Abhängigkeiten:** FLEET-002, **ASSET-009**
|
|
- **Datenmodell:** keins zusätzlich (nutzt ASSET-009)
|
|
- **Backend:** keins zusätzlich
|
|
- **Frontend:** Eingabefeld bei Kontrolle/Rückkehr, eingebettet in Fahrzeug-Akte
|
|
- **Mobile:** Eingabe im Feld (nach Fahrt)
|
|
- **QR-Code/Seriennummer/Inventarnummer:** nein
|
|
- **Akte:** Stammdatenbereich
|
|
- **Rechte:** wie ASSET-009
|
|
- **Audit:** wie ASSET-009
|
|
- **Akzeptanzkriterien:** Kilometerstand-Eingabe am Fahrzeug nutzt denselben validierten
|
|
Mechanismus wie ein Betriebsstunden-Gerät.
|
|
- **Tests:** Integrationstest (Fahrzeug als Anwendungsfall von ASSET-009).
|
|
- **DoD:** funktioniert, keine Fahrzeug-spezifische Sonderlogik mehr nötig.
|
|
|
|
## 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: `ObjektStatus` inkl.
|
|
`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/002/004/005 sind praktisch 1:1 in MABEA vorhanden
|
|
(Objekttyp mit `ist_zugfahrzeug`, `fahrzeugdetails`-Tabelle, 5-stufiger `ObjektStatus`,
|
|
generisches DokumentePanel). **FLEET-003/ASSET-009 zeigen eine echte Lücke:** MABEA führt
|
|
Kilometerstand/Betriebsstunden NUR an `fahrzeugdetails` (fahrzeug-gebunden), es gibt keinen
|
|
generischen Zähler-Mechanismus für Geräte wie Stromerzeuger/Pumpen (`GeraetInstanz` hat kein
|
|
Betriebsstunden-Feld) — und selbst der Fahrzeug-Kilometerstand hat **keine
|
|
Rückwärtslauf-Validierung** (reiner Zahlen-Input). Beides zusammen: ASSET-009 wäre in MABEA
|
|
kein reiner Nachzug, sondern verlangt (a) ein neues generisches Zählerfeld an Objekt/
|
|
GeraetInstanz und (b) eine bisher fehlende Validierungsregel. FLEET-006 ist in MABEA (noch)
|
|
nicht relevant, da kein Operations-Epic existiert. **FLEET-002-Nachtrag:** `funkkenner`
|
|
fehlte in MABEAs `fahrzeugdetails` komplett (nur `funkrufname` vorhanden) — echte, kleine
|
|
Feld-Lücke, wird direkt nachgezogen (siehe Commit).
|