File size: 1,247 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
from pydantic import BaseModel, Field
from typing import Optional, List
from decimal import Decimal
from enum import Enum

class CategoryType(str, Enum):
    SOUPS = "soups"              # For Egusi, Efo riro, Ogbono, etc.
    SWALLOW = "swallow"          # For Pounded yam, Amala, Eba, etc.
    RICE_DISHES = "rice_dishes"  # For Jollof rice, Fried rice, Native rice
    PROTEINS = "proteins"        # For Suya, Asun, Grilled fish, etc.
    SMALL_CHOPS = "small_chops"  # For Puff puff, Samosa, Spring rolls
    PEPPER_SOUP = "pepper_soup"  # For various pepper soup varieties
    SIDES = "sides"              # For Plantains, Moin moin, etc.
    DRINKS = "drinks"            # For Nigerian drinks and beverages

class Category(BaseModel):
    id: Optional[int] = None
    name: str
    type: CategoryType
    description: Optional[str] = None
    
class MenuItem(BaseModel):
    id: Optional[int] = None
    name: str
    description: Optional[str] = None
    price: Decimal = Field(..., gt=0)
    category_id: int
    image_url: Optional[str] = None
    is_available: bool = True
    allergens: Optional[List[str]] = None
    preparation_time: Optional[int] = None  # in minutes
    calories: Optional[int] = None