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]