File size: 1,403 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
38
39
40
41
42
43
44
45
46
47
48
49
50
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