from typing import Optional

from pydantic import BaseModel, ConfigDict
from pydantic.alias_generators import to_camel


class Product(BaseModel):
    model_config = ConfigDict(alias_generator=to_camel, use_enum_values=True)
    id: Optional[str]
    deleted: Optional[bool] = None
    name: Optional[str] = None
    description: Optional[str] = None
    num: Optional[str] = None
    code: Optional[str] = None
    parent: Optional[str] = None
    modifiers: Optional[list] = None
    tax_category: Optional[str] = None
    category: Optional[str] = None
    accounting_category: Optional[str] = None
    front_image_id: Optional[str] = None
    position: Optional[int] = None
    main_unit: Optional[str] = None
    excluded_sections: Optional[set] = None
    default_sale_price: Optional[float] = None
    place_type: Optional[str] = None
    default_include_in_menu: Optional[bool] = None
    type: Optional[str] = None
    unit_weight: Optional[float] = None
    unit_capacity: Optional[float] = None
    not_in_store_movement: Optional[bool] = None


