Neues Pflichtfeld dokumenttyp (Enum: Prüfprotokoll/Wartungsbericht/ Bedienungsanleitung/Rechnung/Zulassungsdokument/Sonstiges, Migration 0026) - macht Dokumente kategorisier- und filterbar statt nur per Freitext- Beschreibung auffindbar zu sein. Backend: Pflichtfeld beim Upload, optionaler Query-Filter bei GET /dokumente. Frontend: Auswahl-Dropdown beim Upload, Typ-Badge + Filter-Dropdown in der Liste (DokumentePanel). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
29 lines
819 B
Python
29 lines
819 B
Python
import uuid
|
|
from datetime import datetime
|
|
from typing import Literal
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
from app.models.dokument import DokumentTyp
|
|
|
|
# Bewusst geschlossene Liste statt Freitext (Konsistenz mit Mangel.entitaet_typ-
|
|
# Validierung) - jeder Ressourcentyp, an den Dokumente angehängt werden dürfen,
|
|
# muss hier explizit freigeschaltet werden.
|
|
EntitaetTyp = Literal[
|
|
"objekt", "objektposition", "geraet_instanz", "mangel", "fahrzeugdetails", "benutzer", "wartungsauftrag"
|
|
]
|
|
|
|
|
|
class DokumentRead(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
id: uuid.UUID
|
|
entitaet_typ: str
|
|
entitaet_id: str
|
|
dateiname: str
|
|
mime_type: str
|
|
groesse_bytes: int
|
|
dokumenttyp: DokumentTyp
|
|
beschreibung: str | None
|
|
hochgeladen_von: int
|
|
hochgeladen_am: datetime
|