Files
bacchus/apps/backend/app/schemas/delivery.py
2025-09-28 19:13:01 +02:00

39 lines
1.1 KiB
Python

from pydantic import BaseModel, ConfigDict
from datetime import date, datetime
from typing import Optional, List
# Bestehendes Einzeilen-Schema bleibt
class DeliveryBase(BaseModel):
product_id: int
amount: int
price_cents: int
delivered_at: Optional[date] = None
supplier: Optional[str] = None
invoice_number: Optional[str] = None
created_by: Optional[int] = None
note: str | None = None
deposit_return_cents: int = 0
model_config = ConfigDict(from_attributes=True) # statt orm_mode
class DeliveryCreate(DeliveryBase):
pass
class DeliveryOut(DeliveryBase):
id: int
class Config:
from_attributes = True
# 🆕 Für die neue Seite (Header + Items + Pfand)
class DeliveryItemIn(BaseModel):
product_id: int
quantity_units: int
unit_cost_cents: int
class DeliveryCreateBulk(BaseModel):
supplier: Optional[str] = None
date: Optional[date] = None
invoice_no: Optional[str] = None
note: Optional[str] = None
deposit_return_cents: int = 0 # Netto-Pfand (Cent, positiv)
items: List[DeliveryItemIn]