from pydantic import BaseModel, ConfigDict, Field class EditorProductRow(BaseModel): id: int tenant_id: str client_name: str item_id: str | None name: str mix_id: int mix_client_name: str mix_name: str sale_type: str unit_of_measure: str visible: bool product_notes: str | None mix_notes: str | None class EditorProductUpdate(BaseModel): model_config = ConfigDict(extra="forbid") client_name: str | None = Field(default=None, min_length=1, max_length=255) name: str | None = Field(default=None, min_length=1, max_length=255) item_id: str | None = Field(default=None, max_length=128) mix_id: int | None = None sale_type: str | None = Field(default=None, min_length=1, max_length=64) unit_of_measure: str | None = Field(default=None, min_length=1, max_length=64) visible: bool | None = None notes: str | None = Field(default=None, max_length=2000) class EditorMixUpdate(BaseModel): model_config = ConfigDict(extra="forbid") client_name: str | None = Field(default=None, min_length=1, max_length=255) name: str | None = Field(default=None, min_length=1, max_length=255) notes: str | None = Field(default=None, max_length=2000)