Spaces:
Paused
Paused
File size: 916 Bytes
5111c4b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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] |