Files
2026-04-25 20:43:37 +12:00

61 lines
1.3 KiB
Python

from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field
class MixIngredientCreate(BaseModel):
raw_material_id: int
quantity_kg: float = Field(gt=0)
notes: str | None = None
class MixIngredientUpdate(BaseModel):
quantity_kg: float | None = Field(default=None, gt=0)
notes: str | None = None
class MixIngredientRead(BaseModel):
id: int
raw_material_id: int
raw_material_name: str
quantity_kg: float
cost_per_kg: float | None
line_cost: float | None
notes: str | None
model_config = ConfigDict(from_attributes=True)
class MixCreate(BaseModel):
client_name: str
name: str
status: str = "draft"
version: int = 1
notes: str | None = None
ingredients: list[MixIngredientCreate]
class MixUpdate(BaseModel):
client_name: str | None = None
name: str | None = None
status: str | None = None
version: int | None = None
notes: str | None = None
class MixRead(BaseModel):
id: int
tenant_id: str
client_name: str
name: str
status: str
version: int
notes: str | None
created_at: datetime
ingredients: list[MixIngredientRead]
total_mix_kg: float
total_mix_cost: float
mix_cost_per_kg: float | None
warnings: list[str]
model_config = ConfigDict(from_attributes=True)