import uuid from datetime import date from pydantic import BaseModel, ConfigDict from app.models.personal import Qualifikationskategorie class EinheitCreate(BaseModel): name: str uebergeordnete_einheit_id: int | None = None standort_id: int | None = None class EinheitRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: int name: str uebergeordnete_einheit_id: int | None standort_id: int | None class EinheitUpdate(BaseModel): name: str | None = None uebergeordnete_einheit_id: int | None = None standort_id: int | None = None class QualifikationstypCreate(BaseModel): name: str kategorie: Qualifikationskategorie gueltigkeit_monate: int | None = None class QualifikationstypRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: int name: str kategorie: Qualifikationskategorie gueltigkeit_monate: int | None class QualifikationstypUpdate(BaseModel): name: str | None = None kategorie: Qualifikationskategorie | None = None gueltigkeit_monate: int | None = None class BenutzerQualifikationCreate(BaseModel): benutzer_id: int qualifikationstyp_id: int erworben_am: date gueltig_bis: date | None = None nachweis_nummer: str | None = None class BenutzerQualifikationRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: uuid.UUID benutzer_id: int qualifikationstyp_id: int erworben_am: date gueltig_bis: date | None nachweis_nummer: str | None class ObjekttypQualifikationsanforderungCreate(BaseModel): objekttyp_id: int qualifikationstyp_id: int class ObjekttypQualifikationsanforderungRead(BaseModel): model_config = ConfigDict(from_attributes=True) objekttyp_id: int qualifikationstyp_id: int class BerechtigungspruefungRead(BaseModel): """Antwort auf "darf Benutzer X Objekt Y bedienen/fahren?" (Nutzer-Beispiel).""" berechtigt: bool fehlende_qualifikationstypen: list[QualifikationstypRead]