96 lines
2.0 KiB
Python
96 lines
2.0 KiB
Python
from datetime import date, time
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class BusinessRead(BaseModel):
|
|
id: int
|
|
name: str
|
|
type: str
|
|
timezone: str
|
|
status: str
|
|
plan: str
|
|
meta_business_id: str | None
|
|
whatsapp_phone_number_id: str | None
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class BusinessUpdate(BaseModel):
|
|
name: str | None = None
|
|
type: str | None = None
|
|
timezone: str | None = None
|
|
|
|
|
|
class BusinessConfigRead(BaseModel):
|
|
open_days: list[int]
|
|
open_time: time
|
|
close_time: time
|
|
slot_duration: int
|
|
max_per_slot: int
|
|
blocked_dates: list[date]
|
|
assistant_name: str
|
|
tone: str
|
|
welcome_message: str | None
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class BusinessConfigUpdate(BaseModel):
|
|
open_days: list[int] | None = None
|
|
open_time: time | None = None
|
|
close_time: time | None = None
|
|
slot_duration: int | None = None
|
|
max_per_slot: int | None = None
|
|
blocked_dates: list[date] | None = None
|
|
assistant_name: str | None = None
|
|
tone: str | None = None
|
|
welcome_message: str | None = None
|
|
|
|
|
|
class TableTypeCreate(BaseModel):
|
|
capacity: int
|
|
quantity: int
|
|
label: str | None = None
|
|
|
|
|
|
class TableTypeUpdate(BaseModel):
|
|
capacity: int | None = None
|
|
quantity: int | None = None
|
|
label: str | None = None
|
|
|
|
|
|
class TableTypeRead(BaseModel):
|
|
id: int
|
|
capacity: int
|
|
quantity: int
|
|
label: str | None
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class ServiceCreate(BaseModel):
|
|
name: str
|
|
description: str | None = None
|
|
price: float | None = None
|
|
duration_minutes: int | None = None
|
|
|
|
|
|
class ServiceUpdate(BaseModel):
|
|
name: str | None = None
|
|
description: str | None = None
|
|
price: float | None = None
|
|
duration_minutes: int | None = None
|
|
is_active: bool | None = None
|
|
|
|
|
|
class ServiceRead(BaseModel):
|
|
id: int
|
|
name: str
|
|
description: str | None
|
|
price: float | None
|
|
duration_minutes: int | None
|
|
is_active: bool
|
|
|
|
model_config = {"from_attributes": True}
|