import uuid from datetime import date from pydantic import BaseModel class KennzahlenRead(BaseModel): anzahl_offener_fehlbestaende: int anzahl_genehmigter_mindermengen: int anzahl_kuerzlich_erledigter_fehlbestaende: int anzahl_bevorstehender_ablaufdaten: int anzahl_problematischer_objekte: int anzahl_objekte_gesamt: int class AblaufdatumRead(BaseModel): objekt_id: int objekt_name: str material_id: int material_name: str ablaufdatum: date verbleibende_tage: int status: str class ObjektMangelRead(BaseModel): objekt_id: int code: str name: str gruende: list[str] class EinsatzbereitschaftRead(BaseModel): einsatzbereit: int eingeschraenkt_einsatzbereit: int unbekannt: int nicht_einsatzbereit: int gesamt: int nie_kontrolliert_gesamt: int details: list[ObjektMangelRead] class PrueftermineintragRead(BaseModel): """typ='geraet' (Karte 14) oder 'fahrzeug_hu'/'fahrzeug_uvv' (Roadmap Phase 3, Modul Fahrzeuge) - eine Kachel für beide (Nutzer-Vorgabe: "welche Prüfungen bald fällig sind" ist ein Konzept). Die geraet-spezifischen Felder sind bei Fahrzeug-Einträgen None.""" typ: str objekt_id: int bezeichnung: str faelligkeitsdatum: date verbleibende_tage: int status: str geraet_instanz_id: uuid.UUID | None = None objektposition_id: uuid.UUID | None = None material_id: int | None = None seriennummer: str | None = None class QualifikationsablaufRead(BaseModel): """Personal-Modul-Kachel (Nutzer-Vorgabe: "wer verliert bald Führerschein/ Lehrgang-Gültigkeit").""" benutzer_qualifikation_id: uuid.UUID benutzer_id: int benutzer_name: str qualifikationstyp_id: int qualifikationstyp_name: str gueltig_bis: date verbleibende_tage: int status: str