Files
MABEA/backend/app/schemas/dokument.py
T
patrickandClaude Sonnet 5 ae09433c11
CI / backend-tests (push) Successful in 2m16s
CI / frontend-build (push) Successful in 27s
feat(dokumente): DOC-004 Original-vs-Kopie-Kennzeichnung
Neues Feld ist_original (Boolean, Migration 0029) - explizit beim Upload
und beim Ersetzen (DOC-003) setzbar, kein Default in eine Richtung erraten.
Wird beim Ersetzen bewusst NICHT vom Vorgänger übernommen (neue Version
könnte ein nachgereichtes Original sein, das eine bisherige Kopie ersetzt,
oder umgekehrt). Frontend: Checkbox "Original (nicht nur Kopie/Scan)" im
Upload-Formular, "Original"-Badge in der Dokumentenliste.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
2026-09-08 12:16:25 +02:00

31 lines
878 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
vorgaenger_id: uuid.UUID | None
ist_original: bool