from pydantic import BaseModel from typing import Optional, List class TableGroupCreate(BaseModel): name: str prefix: Optional[str] = None color: Optional[str] = None class TableGroupUpdate(BaseModel): name: Optional[str] = None prefix: Optional[str] = None color: Optional[str] = None class TableGroupOut(BaseModel): id: int name: str prefix: Optional[str] = None sort_order: int = 0 color: Optional[str] = None model_config = {"from_attributes": True} class TableBase(BaseModel): label: Optional[str] = None group_id: Optional[int] = None is_active: bool = True class TableCreate(BaseModel): label: Optional[str] = None group_id: Optional[int] = None class TableBatchCreate(BaseModel): group_id: Optional[int] = None count: int name_prefix: str # e.g. "TBL-" → TBL-1, TBL-2 ... # start_number is computed on the backend from existing tables in the group class TableUpdate(BaseModel): label: Optional[str] = None group_id: Optional[int] = None is_active: Optional[bool] = None class TableFloorplanUpdate(BaseModel): floor_x: float floor_y: float class TableOut(BaseModel): id: int number: int label: Optional[str] = None group_id: Optional[int] = None is_active: bool = True floor_x: Optional[float] = None floor_y: Optional[float] = None group: Optional[TableGroupOut] = None has_active_order: bool = False model_config = {"from_attributes": True}