items.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from typing import List, Optional
  2. from pydantic import BaseModel
  3. class Item(BaseModel):
  4. name: str
  5. price: float
  6. quantity: int
  7. class Order(BaseModel):
  8. """Order model matching the database schema"""
  9. customerName: str
  10. items: List[Item]
  11. totalAmount: float
  12. orderDate: str
  13. table: int
  14. class Product(BaseModel):
  15. """Product model matching the database schema"""
  16. id: int
  17. name: str
  18. type: Optional[str] = None
  19. description: Optional[str] = None
  20. price: int
  21. image: Optional[str] = None
  22. status: int = 1 # 0: Inactive, 1: Active
  23. quantity: Optional[int] = 1 # Optional quantity for the product
  24. promo_id: Optional[int] = None # ID of the promotional offer if applicable
  25. promo_price: Optional[int] = None # Promotional price if applicable
  26. promo_day: Optional[int] = None # Day of the week for promo (1-7)
  27. class ProductEditRequest(BaseModel):
  28. """Request model for editing a product"""
  29. name: Optional[str] = None
  30. type: Optional[str] = None
  31. description: Optional[str] = None
  32. price: Optional[int] = None
  33. image: Optional[str] = None
  34. status: Optional[int] = None # 0: Inactive, 1: Active
  35. quantity: Optional[int] = None # Optional quantity for the product
  36. class ProductCreateRequest(BaseModel):
  37. """Request model for creating a new product"""
  38. id: int
  39. name: str
  40. type: str
  41. description: str
  42. price: int
  43. image: str
  44. status: Optional[int] = 1 # 0: Inactive, 1: Active
  45. quantity: Optional[int] = 1 # Optional quantity for the product