from pydantic import BaseModel from typing import Dict, List from datetime import datetime from decimal import Decimal class TopSellingItem(BaseModel): item_name: str quantity_sold: int total_revenue: float class DailyReport(BaseModel): date: str total_sales: int total_revenue: float top_selling_items: List[TopSellingItem] class DailyBreakdown(BaseModel): date: str revenue: float class WeeklyReport(BaseModel): period: str total_sales: int daily_breakdown: List[DailyBreakdown] # Future report models class SalesReport(BaseModel): total_sales: Decimal sales_by_category: Dict[str, Decimal] sales_by_item: Dict[str, Decimal] sales_by_hour: Dict[int, Decimal] average_order_value: Decimal peak_hours: List[int] period_start: datetime period_end: datetime class InventoryReport(BaseModel): items_in_stock: Dict[str, int] low_stock_items: List[str] out_of_stock_items: List[str] total_inventory_value: Decimal last_updated: datetime class PerformanceMetrics(BaseModel): order_fulfillment_time: Dict[str, float] # avg time in minutes by order type server_performance: Dict[str, Dict[str, float]] # metrics by server customer_satisfaction: float busy_periods: List[Dict[str, str]] period_start: datetime period_end: datetime