Untitled
unknown
python
a year ago
4.3 kB
8
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