from pydantic import BaseModel from typing import Optional, List class TableGroupCreate(BaseModel): name: str class TableGroupUpdate(BaseModel): name: Optional[str] = None class TableGroupOut(BaseModel): id: int name: str sort_order: int = 0 model_config = {"from_attributes": True} class TableBase(BaseModel): number: int label: Optional[str] = None group_id: Optional[int] = None is_active: bool = True class TableCreate(TableBase): pass class TableBatchCreate(BaseModel): group_id: Optional[int] = None count: int name_prefix: str # e.g. "Out-" → Out-1, Out-2 ... start_number: int = 1 class TableUpdate(BaseModel): number: Optional[int] = None 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(TableBase): id: int floor_x: Optional[float] = None floor_y: Optional[float] = None group: Optional[TableGroupOut] = None model_config = {"from_attributes": True}