import uuid from datetime import date from decimal import Decimal from pydantic import BaseModel, ConfigDict from app.models.objekt import ObjektStatus from app.models.objektposition import ObjektpositionStatus class ObjektCreate(BaseModel): code: str name: str objekttyp_id: int vorlage_id: int standort_id: int class ObjektRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: int code: str name: str objekttyp_id: int vorlage_id: int | None standort_id: int status: ObjektStatus class ObjektDuplizierenRequest(BaseModel): neuer_code: str neuer_name: str neuer_standort_id: int class ObjektpositionRead(BaseModel): model_config = ConfigDict(from_attributes=True) id: uuid.UUID objekt_id: int material_id: int sollmenge_override: Decimal | None sollmenge_effektiv: Decimal ist_status: ObjektpositionStatus istmenge: Decimal seriennummer: str | None ablaufdatum: date | None chargennummer: str | None class ObjektpositionUpdate(BaseModel): sollmenge_override: Decimal | None = None ist_status: ObjektpositionStatus | None = None istmenge: Decimal | None = None seriennummer: str | None = None ablaufdatum: date | None = None chargennummer: str | None = None class ObjektpositionCreate(BaseModel): """Prompt 10 Punkt 2: zusätzliches, nicht in der Vorlage enthaltenes Material. sollmenge_override ist hier Pflicht, da keine Vorlagenposition existiert, aus der sich die Sollmenge dynamisch ableiten ließe.""" material_id: int sollmenge_override: Decimal