import uuid from datetime import datetime from decimal import Decimal from pydantic import BaseModel, ConfigDict from app.models.kontrolle import KontrollStatus class KontrolleCreate(BaseModel): uebernehmen: bool = False class KontrolleRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: uuid.UUID objekt_id: int benutzer_id: int status: KontrollStatus gestartet_am: datetime beendet_am: datetime | None abbruch_grund: str | None class KontrollpositionInput(BaseModel): istmenge: Decimal class KontrollpositionRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: uuid.UUID kontrolle_id: uuid.UUID material_id: int sollmenge_snapshot: Decimal istmenge_erfasst: Decimal abweichung: bool class KontrolleAbbrechenRequest(BaseModel): grund: str | None = None class KontrolleFortschritt(BaseModel): kontrolle: KontrolleRead positionen: list[KontrollpositionRead] anzahl_positionen_gesamt: int anzahl_positionen_erfasst: int