2025-06-01 10:05:16 +00:00

62 lines
1.3 KiB
Python

from datetime import date, datetime
from typing import List, Optional
from pydantic import BaseModel
from app.models.transaction import TransactionType
class InventoryValueItem(BaseModel):
id: int
name: str
sku: str
quantity: int
price: float
total_value: float
class InventoryValueReport(BaseModel):
total_inventory_value: float
items: List[InventoryValueItem]
report_date: datetime = datetime.utcnow()
class CategorySummaryItem(BaseModel):
category_id: int
category_name: str
item_count: int
total_value: float
average_price: float
class CategorySummaryReport(BaseModel):
categories: List[CategorySummaryItem]
report_date: datetime = datetime.utcnow()
class LowStockItem(BaseModel):
id: int
name: str
sku: str
quantity: int
reorder_level: int
category_name: Optional[str] = None
class LowStockReport(BaseModel):
low_stock_items: List[LowStockItem]
report_date: datetime = datetime.utcnow()
class TransactionSummaryItem(BaseModel):
transaction_type: TransactionType
count: int
total_quantity: int
total_value: Optional[float] = None
class TransactionSummaryReport(BaseModel):
start_date: date
end_date: date
transactions: List[TransactionSummaryItem]
report_date: datetime = datetime.utcnow()