39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
|
|
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)
|