Desk-Back2 / app /models /orders.py
Fred808's picture
Upload 77 files
5111c4b verified
from pydantic import BaseModel
from typing import List, Optional
from datetime import datetime
from enum import Enum
class OrderStatus(str, Enum):
PENDING = "pending"
PREPARING = "preparing"
READY = "ready"
DELIVERED = "delivered"
CANCELLED = "cancelled"
class OrderItem(BaseModel):
menu_item_id: int
quantity: int
unit_price: float
notes: Optional[str] = None
class Order(BaseModel):
id: Optional[int] = None
customer_id: int
items: List[OrderItem]
total_amount: float
status: OrderStatus
created_at: datetime
updated_at: Optional[datetime] = None
class OrderDetails(Order):
payment_status: str
server_name: str
table_number: Optional[int] = None
class OrderStats(BaseModel):
total_orders: int
total_revenue: float
average_order_value: float
orders_by_status: dict[OrderStatus, int]