from pydantic import BaseModel from datetime import datetime from typing import Optional, List class OrderItemInput(BaseModel): product_id: int quantity: int selected_options: Optional[List[int]] = None removed_ingredients: Optional[List[int]] = None notes: Optional[str] = None class AddItemsRequest(BaseModel): items: List[OrderItemInput] class OrderItemOut(BaseModel): id: int order_id: int product_id: int added_by: int quantity: int unit_price: float selected_options: Optional[str] = None removed_ingredients: Optional[str] = None notes: Optional[str] = None status: str added_at: datetime printed: bool model_config = {"from_attributes": True} class OrderCreate(BaseModel): table_id: int class PayItemsRequest(BaseModel): item_ids: List[int] class AssignWaiterRequest(BaseModel): waiter_id: int class OrderOut(BaseModel): id: int table_id: int opened_by: int opened_at: datetime status: str closed_at: Optional[datetime] = None closed_by: Optional[int] = None notes: Optional[str] = None items: List[OrderItemOut] = [] model_config = {"from_attributes": True}