Master-Prompt-Ergebnis vom 2026-09-05 (Epic-Übersicht, vollständige Kachel- Liste, Abhängigkeitsgraph, MVP-Abgrenzung, Details zu den ersten 20 Kacheln) aus dem Chat in Dateien überführt statt nur im Gespräch zu bleiben. 00_index.md: Decisions Required, Epic-Übersicht, vollständige Kachel-Tabelle, Abhängigkeitsgraph, MVP-Abgrenzung. 01_foundation.md / 02_identity.md / 03_digital_file.md: Detailspezifikation je Kachel (Ziel/Beschreibung/Datenmodell/Rechte/Akzeptanzkriterien/Tests/DoD), jeweils mit Abgleich gegen den aktuellen MABEA-Ist-Stand. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
10 KiB
10 KiB
Epic 02 — Identity
Details zu IDENT-001, 002, 004, 005–010. IDENT-003 (Nummernschemata) noch nicht detailliert,
siehe 00_index.md-Tabelle.
IDENT-001 — Objekt-ID-Schema
- Ziel: Jede Ressource ist technisch eindeutig identifizierbar, unabhängig von Fachfeldern.
- Beschreibung: Primärschlüssel-Strategie für alle Ressourcentypen festlegen (UUID vs. fortlaufende ID je Tabelle), Konvention dokumentieren.
- Benutzerwert: Grundlage für QR-Code/Verknüpfungen — ohne stabile ID keine verlässliche digitale Identität.
- Abhängigkeiten: FOUND-002
- Datenmodell: Konvention (kein neues Feld, sondern Festlegung für alle künftigen Tabellen)
- Backend/Frontend/Mobile: —
- QR-Code: Grundlage für spätere QR-Kacheln
- Seriennummer/Inventarnummer: getrennt davon, siehe IDENT-002/004
- Akte: die ID ist der Aufhänger der Akte
- Rechte: keine
- Audit: nein
- Akzeptanzkriterien: dokumentierte Entscheidung (ADR), mind. ein Beispiel-Modell nutzt sie.
- Tests: keine (reine Konvention)
- DoD: ADR verabschiedet, in FOUND-002-Migrationsvorlage verankert.
IDENT-002 — Inventarnummer (manuell)
- Ziel: Organisationseigene, menschenlesbare Kennzeichnung neben der technischen ID.
- Beschreibung: Freitextfeld, Eindeutigkeit je Organisation erzwingen.
- Benutzerwert: Materialwart kann Ressourcen anhand vertrauter Nummern wiederfinden (Etiketten, Inventarlisten).
- Abhängigkeiten: IDENT-001
- Datenmodell:
inventarnummer(Textfeld, UNIQUE je Organisation) an Asset-Tabelle (folgt ab ASSET-003) - Backend: Validierung Eindeutigkeit bei Anlage/Änderung
- Frontend: Eingabefeld bei Ressourcenanlage
- Mobile: Anzeige in der Akte
- QR-Code: kann Teil des gedruckten Labels sein (Klartext-Fallback)
- Seriennummer: getrennt, siehe IDENT-004
- Akte: Kernfeld der Identität
- Rechte: Ändern nur Materialwart/Administrator
- Audit: Änderung der Inventarnummer wird geloggt
- Akzeptanzkriterien: doppelte Inventarnummer wird abgelehnt (409), Änderung wird protokolliert.
- Tests: Konflikt-Test, Erfolgstest.
- DoD: funktioniert für mind. einen Ressourcentyp (Vorgriff auf ASSET-003, kann testweise an Dummy-Tabelle validiert werden).
IDENT-004 — Seriennummer + Eindeutigkeitsprüfung
- Ziel: Herstellerseitige eindeutige Kennzeichnung erfassen.
- Beschreibung: Seriennummernfeld, Eindeutigkeit optional je Materialtyp konfigurierbar (manche Ressourcen brauchen keine SN-Eindeutigkeit global, sondern nur je Objektposition — Lehre aus MABEA: SN ist nur innerhalb einer Position eindeutig, nicht global).
- Benutzerwert: Rückverfolgbarkeit bei Rückrufaktionen/Garantiefällen/Diebstahl.
- Abhängigkeiten: IDENT-001
- Datenmodell:
seriennummer(Text) an Asset-Instanz - Backend: Eindeutigkeitsprüfung im konfigurierten Scope
- Frontend: Eingabefeld, ggf. Scan-Unterstützung (Kamera, spätere Mobile-Kachel)
- Mobile: Anzeige/Erfassung
- QR-Code: SN kann im gedruckten Label als Klartext stehen, nicht im QR-Inhalt selbst
- Inventarnummer: getrennt, siehe IDENT-002
- Akte: Kernfeld
- Rechte: Ändern nur Materialwart/Administrator
- Audit: Änderung wird geloggt
- Akzeptanzkriterien: doppelte SN im gleichen Scope wird abgelehnt, in unterschiedlichem Scope erlaubt.
- Tests: beide Fälle abgedeckt.
- DoD: wie IDENT-002, funktioniert an Dummy-/Vorgriffs-Tabelle.
IDENT-005 — Hersteller/Modell-Stammdaten
- Ziel: Herstellerangaben strukturiert statt als Freitext im Namen.
- Beschreibung: Stammdatentabelle Hersteller, Modellfeld am AssetType, Verknüpfung.
- Benutzerwert: Ersatzteilsuche/Rückrufabgleich nach Hersteller möglich, saubere Filterung.
- Abhängigkeiten: IDENT-004
- Datenmodell:
hersteller(id, name),asset_type.hersteller_id,asset_type.modell - Backend: CRUD Hersteller, Modellfeld in AssetType-Endpunkten
- Frontend: Herstellerauswahl im AssetType-Formular
- Mobile: Anzeige in Akte
- QR-Code: nein
- Seriennummer/Inventarnummer: nein
- Akte: Stammdatenbereich
- Rechte: Ändern nur Materialwart/Administrator
- Audit: Änderung wird geloggt
- Akzeptanzkriterien: Hersteller anlegen, AssetType damit verknüpfen, Anzeige in Akte korrekt.
- Tests: CRUD-Test, Verknüpfungstest.
- DoD: funktioniert für mind. einen AssetType.
IDENT-006 — QR-Code-Erzeugung
- Ziel: Jede Ressource bekommt einen QR-Code, der auf ihre Identität verweist.
- Beschreibung: QR-Inhalt = URL-Pfad (
/akte/{ressourcentyp}/{id}), nicht Volldaten (Decision Required #3 in00_index.md— entschieden: URL-Pfad). - Benutzerwert: Grundlage für schnelles Scannen statt manueller Suche.
- Abhängigkeiten: IDENT-001
- Datenmodell: kein neues Feld — QR wird aus der Objekt-ID zur Laufzeit generiert, nicht gespeichert
- Backend: Funktion/Endpoint, das QR-Payload (PNG/SVG) für eine ID liefert
- Frontend: QR-Vorschau-Komponente
- Mobile: gleiche Erzeugung
- QR-Code: ist diese Kachel
- Seriennummer/Inventarnummer: stehen NICHT im QR-Inhalt (nur Klartext-Fallback auf dem Label, siehe IDENT-007)
- Akte: Ziel des QR-Verweises
- Rechte: Erzeugen wie Lese-Recht der Ressource
- Audit: nein (reine Generierung, kein Datenzustand)
- Akzeptanzkriterien: QR-Code für existierende ID erzeugt, für unbekannte ID Fehler.
- Tests: Erzeugungstest, Dekodier-Test (Payload ergibt korrekte URL).
- DoD: QR-Bild lässt sich mit Standard-Scanner lesen und ergibt korrekten Pfad.
IDENT-007 — QR-Code-Druck (Label)
- Ziel: Druckfertiges Etikett mit QR + Klartext-Fallback.
- Beschreibung: PDF-Label-Generierung (Vektor, skaliert verlustfrei), Klartext = Name + Inventarnummer/Seriennummer.
- Benutzerwert: Materialwart kann Etiketten für neue Ressourcen direkt drucken.
- Abhängigkeiten: IDENT-006
- Datenmodell: keins
- Backend: GET-Endpoint liefert PDF
- Frontend: Druckbutton in der Akte/Ressourcenliste
- Mobile: eher Desktop-Funktion (Etikettendrucker), Mobile nur Anzeige
- QR-Code: wird hier eingebettet
- Seriennummer/Inventarnummer: als Klartext auf dem Label
- Akte: Aktion aus der Akte heraus auslösbar
- Rechte: wie Lese-Recht
- Audit: nein
- Akzeptanzkriterien: PDF enthält scanbaren QR + korrekten Klartext.
- Tests: Label-Erzeugungstest (Snapshot/Struktur, nicht Pixel).
- DoD: auf echtem Etikettendrucker test-gedruckt und scanbar.
IDENT-008 — QR-Scan → Akte öffnen
- Ziel: Zentraler Einstiegspunkt „scannen → sofort alle Infos sehen".
- Beschreibung: Frontend-Route, die den QR-Pfad auflöst und direkt FILE-006 lädt.
- Benutzerwert: Kernnutzen des ganzen Identity-Konzepts — ohne das bleibt QR nur Deko.
- Abhängigkeiten: IDENT-006, FILE-006
- Datenmodell: keins
- Backend: keins zusätzlich (nutzt FILE-001-Aggregations-Endpoint)
- Frontend: Scan-Route + Kamera-Komponente
- Mobile: zentraler mobiler Workflow-Einstieg (siehe MOBILE-002)
- QR-Code: ist diese Kachel
- Seriennummer/Inventarnummer: nur Anzeige
- Akte: Zielseite
- Rechte: wie Akte-Lese-Recht, 404 falls Ressourcen-ID unbekannt/kein Zugriff
- Audit: nein
- Akzeptanzkriterien: Scan eines gültigen QR öffnet korrekt die Akte; ungültiger Code zeigt Fehlermeldung, keinen Absturz.
- Tests: Routing-Test mit gültiger/ungültiger ID.
- DoD: funktioniert auf echtem Smartphone im Feldtest.
IDENT-009 — QR-Neuvergabe & QR-Historie
- Ziel: Verlorenes/beschädigtes Etikett ersetzen, ohne die Ressourcen-ID zu verlieren.
- Beschreibung: Da QR nur die ID referenziert (IDENT-006), ist „neu vergeben" technisch nur ein neuer Druck — Kachel deckt aber den Sonderfall ab, dass zwischenzeitlich ALTE gedruckte Etiketten im Umlauf sein können und das nachvollziehbar bleiben muss.
- Benutzerwert: Klarheit, welches physische Etikett aktuell gültig ist.
- Abhängigkeiten: IDENT-006
- Datenmodell:
qr_druck_ereignis(ressourcen_id, zeitpunkt, benutzer_id) — nur Protokoll, kein Zustand am Objekt selbst - Backend: Log-Eintrag bei jedem Label-Druck (Kopplung an IDENT-007)
- Frontend: „zuletzt gedruckt am" in der Akte anzeigen
- Mobile: nur Anzeige
- QR-Code: Kernthema
- Seriennummer/Inventarnummer: nein
- Akte: Historienbereich
- Rechte: wie Lese-Recht
- Audit: ist selbst ein Audit-Protokoll
- Akzeptanzkriterien: jeder Druckvorgang erzeugt einen Eintrag, in der Akte sichtbar.
- Tests: Protokoll-Test bei Druckaufruf.
- DoD: funktioniert an mind. einer Ressource nachweisbar.
IDENT-010 — Barcode/GTIN (optional, P3)
- Ziel: Handelsübliche Verbrauchsgüter über Hersteller-Barcode statt eigener Nummer erfassen.
- Beschreibung: Zusatzfeld GTIN/EAN, optionale Barcode-Scan-Unterstützung neben QR.
- Benutzerwert: Schnellere Ersterfassung bei Standard-Verbrauchsmaterial (z.B. Verbandsmaterial mit Herstellerbarcode).
- Abhängigkeiten: IDENT-001
- Datenmodell:
gtin(Text, optional) an Asset/Consumable - Backend: Validierung Format (EAN-13/GTIN-Prüfsumme)
- Frontend: Barcode-Scan-Eingabehilfe
- Mobile: Scan-Unterstützung
- QR-Code: eigenständig daneben, kein Ersatz
- Seriennummer/Inventarnummer: ergänzend, nicht Ersatz
- Akte: Stammdatenbereich
- Rechte: wie Materialwart-Schreibrecht
- Audit: Änderung wird geloggt
- Akzeptanzkriterien: gültige GTIN wird angenommen, ungültige abgelehnt.
- Tests: Prüfsummen-Test.
- DoD: funktioniert für mind. ein Verbrauchsmaterial-Beispiel. Priorität P3 — kann grundsätzlich zurückgestellt werden.
MABEA-Ist-Stand-Abgleich: IDENT-001 (Code/UUID), 002/003 (objekt.code/
objektposition.code, Nummernschema mit Präfix), 004 (Seriennummer je Objektposition/
GeraetInstanz, Eindeutigkeit korrekt scope-begrenzt), 006/007/008 (Code128-Label + PDF +
Scan→Kontrolle-Route) sind vorhanden, allerdings Code128 statt QR und ohne
Digital-File-Zielseite (die gibt es noch nicht, siehe FILE-Epic). IDENT-005
(Hersteller/Modell), IDENT-009 (QR-Historie), IDENT-010 (Barcode/GTIN) fehlen komplett.