Files
MABEA/backend/app/schemas/dokument.py
T
patrickandClaude Sonnet 5 069a1ee7ee
CI / backend-tests (push) Successful in 2m14s
CI / frontend-build (push) Successful in 36s
feat(dokumente): DOC-002 feste Dokumenttypen statt Freitext
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
2026-09-08 10:32:25 +02:00

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