Untitled

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

# MenuItem models
class MenuItemBase(BaseModel):
    product_id: int
    name: str
    taxonomy_id: int
    country_id: int
    brand_id: int
    base_price: float
    start_date: str
    end_date: str
    isBundle: bool = False
    isBundleVariant: bool = False
    isVariant: bool = False

class MenuItemCreate(MenuItemBase):
    pass

class MenuItemUpdate(BaseModel):
    product_id: Optional[int] = None
    name: Optional[str] = None
    taxonomy_id: Optional[int] = None
    country_id: Optional[int] = None
    brand_id: Optional[int] = None
    base_price: Optional[float] = None
    start_date: Optional[str] = None
    end_date: Optional[str] = None
    isBundle: Optional[bool] = None
    isBundleVariant: Optional[bool] = None
    isVariant: Optional[bool] = None

class MenuItem(MenuItemBase):
    id: int

    class Config:
        orm_mode = True

# Product models
class ProductBase(BaseModel):
    name: str

class ProductCreate(ProductBase):
    pass

class ProductUpdate(BaseModel):
    name: Optional[str] = None

class Product(ProductBase):
    id: int

    class Config:
        orm_mode = True

# Pricing models
class PricingModelBase(BaseModel):
    name: str
    brand_id: int
    country_id: int
    selected: bool = False

class PricingModelCreate(PricingModelBase):
    pass

class PricingModelUpdate(BaseModel):
    name: Optional[str] = None
    brand_id: Optional[int] = None
    country_id: Optional[int] = None
    selected: Optional[bool] = None

class PricingModel(PricingModelBase):
    id: int

    class Config:
        orm_mode = True

# VariantOption models
class VariantOptionBase(BaseModel):
    menu_item_id: int
    name: str
    variant_attrib: str
    variant_value: str

class VariantOptionCreate(VariantOptionBase):
    pass

class VariantOptionUpdate(BaseModel):
    menu_item_id: Optional[int] = None
    name: Optional[str] = None
    variant_attrib: Optional[str] = None
    variant_value: Optional[str] = None

class VariantOption(VariantOptionBase):
    id: int

    class Config:
        orm_mode = True

# MenuItemPrice models
class MenuItemPriceBase(BaseModel):
    menu_item_id: int
    channel_id: int
    store_type_id: int
    daypart_id: int
    weekpart_id: int
    publish_price: float
    base_price: float

class MenuItemPriceCreate(MenuItemPriceBase):
    pass

class MenuItemPriceUpdate(BaseModel):
    menu_item_id: Optional[int] = None
    channel_id: Optional[int] = None
    store_type_id: Optional[int] = None
    daypart_id: Optional[int] = None
    weekpart_id: Optional[int] = None
    publish_price: Optional[float] = None
    base_price: Optional[float] = None
    job_id: Optional[int] = None
    user_id: Optional[int] = None
    approved: Optional[bool] = None
    approved_by: Optional[int] = None
    approved_at: Optional[datetime] = None
    published: Optional[bool] = None
    published_by: Optional[int] = None
    published_at: Optional[datetime] = None

class MenuItemPrice(MenuItemPriceBase):
    id: int
    created_at: datetime
    updated_at: datetime
    job_id: Optional[int] = None
    user_id: Optional[int] = None
    approved: Optional[bool] = None
    approved_by: Optional[int] = None
    approved_at: Optional[datetime] = None
    published: Optional[bool] = None
    published_by: Optional[int] = None
    published_at: Optional[datetime] = None

    class Config:
        orm_mode = True

# Job models
class JobBase(BaseModel):
    job_name: str
    status: str

class JobCreate(JobBase):
    pass

class JobUpdate(BaseModel):
    job_name: Optional[str] = None
    status: Optional[str] = None

class Job(JobBase):
    id: int
    created_at: datetime

    class Config:
        orm_mode = True

# User models
class UserBase(BaseModel):
    username: str
    email: str

class UserCreate(UserBase):
    pass

class UserUpdate(BaseModel):
    username: Optional[str] = None
    email: Optional[str] = None

class User(UserBase):
    id: int
    created_at: datetime

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