feat(repairs): add repair documents
This commit is contained in:
parent
884a20e043
commit
6e7e75f864
21 changed files with 1222 additions and 6 deletions
|
|
@ -322,6 +322,64 @@ Hermes-Endpunkte:
|
|||
|
||||
Athena ruft diese Endpunkte ausschliesslich ueber BFF-Routen unter `/api/system-settings/...` auf. Mutierende Requests verwenden den bestehenden Same-Origin-Schutz. Zugriff erfordert `system_settings.manage`, das der Administratorrolle zugewiesen ist.
|
||||
|
||||
### Reparaturdokumente
|
||||
|
||||
Ab v0.8.5 verwaltet Olympus Bilder und Dokumente direkt an Reparaturen. Die Fachlogik liegt im Repair-Modul, Dateizugriffe laufen ueber das zentrale Storage Framework.
|
||||
|
||||
Datenmodell `repair_documents`:
|
||||
|
||||
- `repair_id`
|
||||
- `title`
|
||||
- `document_type`
|
||||
- `original_filename`
|
||||
- `stored_filename`
|
||||
- `storage_path`
|
||||
- `mime_type`
|
||||
- `size_bytes`
|
||||
- `checksum_sha256`
|
||||
- `visibility`
|
||||
- `note`
|
||||
- `uploaded_by_user_id`
|
||||
- Zeitstempel
|
||||
|
||||
Dokumenttypen:
|
||||
|
||||
- `device_photo`
|
||||
- `fault_photo`
|
||||
- `measurement`
|
||||
- `estimate`
|
||||
- `repair_report`
|
||||
- `shipping`
|
||||
- `other`
|
||||
|
||||
`visibility` kann `internal` oder `customer` sein. Die Kundensicht ist nur vorbereitet; in v0.8.5 werden Dokumente nicht oeffentlich fuer Kunden ausgeliefert.
|
||||
|
||||
Storage:
|
||||
|
||||
- Namespace: `repairs/<repair_id>/documents`
|
||||
- Erlaubte Uploads: JPG, PNG, WEBP und PDF
|
||||
- Dateinamen werden normalisiert
|
||||
- SHA-256 wird gespeichert
|
||||
- Dateiinhalte werden nicht geloggt
|
||||
- Storage-Pfade werden nicht in Audit-Metadaten geschrieben
|
||||
- Browser erhalten Dateien nur ueber Athena-BFF und Hermes-RBAC
|
||||
|
||||
Hermes-Endpunkte:
|
||||
|
||||
- `GET /repairs/{id}/documents`
|
||||
- `POST /repairs/{id}/documents/upload`
|
||||
- `GET /repairs/{id}/documents/{document_id}`
|
||||
- `PUT /repairs/{id}/documents/{document_id}`
|
||||
- `GET /repairs/{id}/documents/{document_id}/download`
|
||||
- `DELETE /repairs/{id}/documents/{document_id}`
|
||||
|
||||
RBAC:
|
||||
|
||||
- Liste, Detail und Download erfordern `repairs.read`.
|
||||
- Upload, Aenderung und Loeschung erfordern `repairs.update`.
|
||||
|
||||
Athena ruft diese Endpunkte ausschliesslich ueber `/api/repairs/[id]/documents...` auf. Mutierende Requests verwenden den Same-Origin-Schutz.
|
||||
|
||||
### Website Repair Intake
|
||||
|
||||
Hermes stellt `POST /public/repair-intake` fuer eine spaetere serverseitige Website-Anbindung bereit.
|
||||
|
|
@ -741,6 +799,8 @@ Seit v0.7.0 laufen Knowledge-Dateien ueber das zentrale Storage Framework. Knowl
|
|||
|
||||
Neue Uploads werden im Namespace `knowledge/documents/<manufacturer_id>` gespeichert. Die Datenbank-Metadaten bleiben kompatibel: `knowledge_documents.file_path` enthaelt den Storage-Key fuer neue Dateien oder einen bestehenden Legacy-Pfad fuer alte Dateien.
|
||||
|
||||
Reparaturdokumente werden ab v0.8.5 im Namespace `repairs/<repair_id>/documents` gespeichert. Zulaessig sind JPG, PNG, WEBP und PDF. PDF-Anzeige bleibt auf Inline-Open/Download begrenzt; ein eigener PDF-Viewer ist ein spaeteres Feature.
|
||||
|
||||
Konfiguration:
|
||||
|
||||
- `STORAGE_PROVIDER`, Default `local`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue