Untitled

 avatar
unknown
python
a year ago
2.8 kB
4
Indexable
from pydantic import BaseModel
from typing import List, Optional, Dict

# Existing Schemas...

class ModifierOptionBase(BaseModel):
    nameEn: str
    nameAr: str
    price: float
    default: bool

class ModifierOptionCreate(ModifierOptionBase):
    pass

class ModifierOption(ModifierOptionBase):
    id: int

    class Config:
        orm_mode = True

class ModifierBase(BaseModel):
    isAddOn: bool
    titleEn: str
    titleAr: str
    subtitleEn: str
    subtitleAr: str
    maximum: int
    minimum: int
    displayType: str
    itemStyle: int
    ingredient: bool
    options: List[ModifierOptionCreate]

class ModifierCreate(ModifierBase):
    pass

class Modifier(ModifierBase):
    id: int

    class Config:
        orm_mode = True

class StepOptionBase(BaseModel):
    nameEn: str
    nameAr: str
    price: float
    selected: bool
    displayType: str
    sequence: int
    modGroupId: int
    modifiers: List[ModifierCreate]

class StepOptionCreate(StepOptionBase):
    pass

class StepOption(StepOptionBase):
    id: int

    class Config:
        orm_mode = True

class StepBase(BaseModel):
    titleEn: str
    titleAr: str
    compId: int
    subtitleEn: str
    subtitleAr: str
    displayType: str
    sequenceOrder: int
    parseVg: bool
    options: List[StepOptionCreate]

class StepCreate(StepBase):
    pass

class Step(StepBase):
    id: int

    class Config:
        orm_mode = True

class ProductBase(BaseModel):
    titleEn: str
    titleAr: str
    descriptionEn: Optional[str] = None
    descriptionAr: Optional[str] = None
    customizable: Optional[bool] = None
    sequenceOrder: Optional[int] = None
    price: Optional[float] = None
    specialPrice: Optional[float] = None
    strikeOutPrice: Optional[float] = None
    discountPrecentage: Optional[int] = None
    selectedItemId: Optional[int] = None
    type: Optional[str] = None
    displayDateConfig: Optional[dict] = None
    selectedValue: Optional[int] = None
    itemType: str
    limited_offer: Optional[bool] = None
    spicyOutConfig: Optional[str] = None
    taxClassId: Optional[int] = None
    lucky_day: Optional[str] = None
    lucky_date_everymonth: Optional[str] = None
    last_weak_everymonth: Optional[str] = None
    lucky_type: Optional[str] = None
    status: Optional[bool] = None
    qrcode: Optional[str] = None
    services: Optional[Dict[str, bool]] = None
    display_day: Optional[Dict[str, List[Dict[str, str]]]] = None
    steps: Optional[List[StepCreate]] = None

class ProductCreate(ProductBase):
    categoryIds: List[int]

class Product(ProductBase):
    id: int
    categoryIds: List[int]

    class Config:
        orm_mode = True
Editor is loading...
Leave a Comment