import uuid from datetime import datetime from typing import Literal from pydantic import BaseModel, ConfigDict # 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 beschreibung: str | None hochgeladen_von: int hochgeladen_am: datetime