_kategorie_und_gruende() zählte "noch_nie_kontrolliert" bisher nur, wenn es der EINZIGE Grund war - ein Objekt mit z.B. offenem Fehlbestand UND nie kontrolliert verlor den Hinweis komplett, landete nur unter "nicht einsatzbereit" ohne diesen Grund zu nennen. Jetzt immer als Zusatzgrund angehängt. Neues Feld nie_kontrolliert_gesamt liefert die tatsächliche Gesamtzahl über alle Kategorien hinweg, Dashboard nutzt sie statt der (bewusst engeren) "unbekannt"-Kategorie. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
71 lines
1.8 KiB
Python
71 lines
1.8 KiB
Python
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
|
|
material_id: int
|
|
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
|