Desk-Back2 / app /models /reports.py
Fred808's picture
Upload 77 files
5111c4b verified
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