Desk-Back2 / app /models /orders.py
Fred808's picture
Upload 77 files
5111c4b verified
Raw History Blame Contribute Delete
916 Bytes
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]