fix(knowledge): improve upload workflow and seed manufacturers

This commit is contained in:
Schubert Ferenc 2026-07-03 18:40:05 +02:00
parent 964b545bc5
commit 612e1ad8ed
13 changed files with 429 additions and 20 deletions

View file

@ -534,6 +534,57 @@ Hermes stellt dafuer Tabellen mit dem Prefix `knowledge_` bereit:
Athena stellt die BFF-Routen unter `/api/knowledge/...` bereit. Der Browser spricht weiterhin ausschliesslich mit Athena.
### Knowledge-Workflow
Seit v0.7.1 fuehrt die UI Benutzer explizit durch den fachlichen Ablauf:
```text
Hersteller -> Gerät -> Dokument -> Notiz/Reparaturhinweis
```
Dokumente wie Schaltplaene, Service Manuals oder Abgleichanleitungen werden immer einem konkreten Geraet zugeordnet. Der Upload wird in Athena deaktiviert, solange Hersteller oder Geraet fehlen. Empty States erklaeren, was fehlt, und bieten die naechste sinnvolle Aktion an.
Upload-Voraussetzungen:
- Hersteller ist Pflicht.
- Geraet ist Pflicht.
- Dokumenttyp ist Pflicht.
- Datei ist Pflicht bei neuen Uploads.
- Das Geraet muss zum ausgewaehlten Hersteller gehoeren.
Hermes validiert diese Regeln serverseitig und liefert Benutzerfehler mit klaren Meldungen statt 500er-Antworten.
### Standard-Hersteller-Seeding
Hermes legt beim Startup idempotent Standard-Hersteller an, sofern sie noch nicht existieren:
- Stabo
- President
- Albrecht
- Marconi
- Rohde & Schwarz
- HP
- CRT
- Alinco
- Motorola
- Team
Das Seeding ueberschreibt bestehende Hersteller nicht. Fehlende Slugs werden ergaenzt. Websites und Notizen bleiben leer, solange keine sicheren Stammdaten gepflegt sind.
### Empty States
Athena verwendet fuer Knowledge-Listen die zentrale Komponente `EmptyState`.
Sie wird eingesetzt fuer:
- leere Herstellerliste
- leere Geraeteliste
- leere Dokumentliste
- leere Notizliste
- Suche oder Filter ohne Treffer
Jeder Empty State erklaert kurz den fehlenden Zustand und bietet eine passende Aktion an.
### Knowledge-Dateispeicherung
Seit v0.7.0 laufen Knowledge-Dateien ueber das zentrale Storage Framework. KnowledgeService speichert, liest und loescht Dateien nicht mehr direkt ueber verstreute Dateioperationen, sondern ueber `StorageService`.