38 lines
862 B
Python
38 lines
862 B
Python
|
import uuid
|
||
|
from typing import Optional, List
|
||
|
|
||
|
from pydantic import BaseModel, Field
|
||
|
|
||
|
from barker.schemas import to_camel
|
||
|
from barker.schemas.menu_category import MenuCategoryLink
|
||
|
|
||
|
|
||
|
class ModifierCategoryIn(BaseModel):
|
||
|
name: str = Field(..., min_length=1)
|
||
|
minimum: int = Field(ge=0)
|
||
|
maximum: Optional[int] = Field(ge=0)
|
||
|
is_active: bool
|
||
|
menu_categories: Optional[List[MenuCategoryLink]]
|
||
|
|
||
|
class Config:
|
||
|
fields = {"id_": "id"}
|
||
|
anystr_strip_whitespace = True
|
||
|
alias_generator = to_camel
|
||
|
|
||
|
|
||
|
class ModifierCategory(ModifierCategoryIn):
|
||
|
id_: uuid.UUID
|
||
|
sort_order: int
|
||
|
|
||
|
class Config:
|
||
|
fields = {"id_": "id"}
|
||
|
anystr_strip_whitespace = True
|
||
|
alias_generator = to_camel
|
||
|
|
||
|
|
||
|
class ModifierCategoryLink(BaseModel):
|
||
|
id_: uuid.UUID = Field(...)
|
||
|
|
||
|
class Config:
|
||
|
fields = {"id_": "id"}
|