Untitled

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

# Existing Schemas...

class VariantOptionBase(BaseModel):
    titleEn: str
    titleAr: str
    isSelected: bool

class VariantOptionCreate(VariantOptionBase):
    pass

class VariantOption(VariantOptionBase):
    id: int

    class Config:
        orm_mode = True

class VariantBase(BaseModel):
    titleEn: str
    titleAr: str
    selIndex: int
    subtitleEn: str
    subtitleAr: str
    options: List[VariantOptionCreate]

class VariantCreate(VariantBase):
    pass

class Variant(VariantBase):
    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
    variants: Optional[List[VariantCreate]] = None
    products: Optional[List['ProductCreate']] = None  # Allow nested products

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