feat: add full/empty weight fields to Product and last_weighed_at to ProductInventory
Adds full_weight_g and empty_weight_g to ProductBase (inherited by Product and response models) so per-product package weight specs are captured. Adds last_weighed_at to ProductInventory to record when a package was last weighed. Wires up all fields through API schemas, frontend types, forms, and the product detail page (add/edit/display). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
2b73dc63ac
commit
43fcba4de6
8 changed files with 255 additions and 16 deletions
|
|
@ -101,6 +101,7 @@ class InventoryCreate(SQLModel):
|
|||
finished_at: Optional[date] = None
|
||||
expiry_date: Optional[date] = None
|
||||
current_weight_g: Optional[float] = None
|
||||
last_weighed_at: Optional[date] = None
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
|
|
@ -110,6 +111,7 @@ class InventoryUpdate(SQLModel):
|
|||
finished_at: Optional[date] = None
|
||||
expiry_date: Optional[date] = None
|
||||
current_weight_g: Optional[float] = None
|
||||
last_weighed_at: Optional[date] = None
|
||||
notes: Optional[str] = None
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -103,6 +103,8 @@ class ProductBase(SQLModel):
|
|||
|
||||
price_tier: PriceTier | None = None
|
||||
size_ml: float | None = Field(default=None, gt=0)
|
||||
full_weight_g: float | None = Field(default=None, gt=0)
|
||||
empty_weight_g: float | None = Field(default=None, gt=0)
|
||||
pao_months: int | None = Field(default=None, ge=1, le=60)
|
||||
|
||||
inci: list[str] = Field(default_factory=list)
|
||||
|
|
@ -383,6 +385,7 @@ class ProductInventory(SQLModel, table=True):
|
|||
finished_at: date | None = Field(default=None)
|
||||
expiry_date: date | None = Field(default=None)
|
||||
current_weight_g: float | None = Field(default=None, gt=0)
|
||||
last_weighed_at: date | None = Field(default=None)
|
||||
notes: str | None = None
|
||||
|
||||
created_at: datetime = Field(default_factory=utc_now, nullable=False)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue