api / backend /models.py
Tataaicoltd's picture
deploy: ban fields on Positions
3cd642e verified
Raw History Blame Contribute Delete
4.97 kB
from pydantic import BaseModel
from typing import Optional, List, Union, Any
class CategoryBase(BaseModel):
label: str
class Category(CategoryBase):
id: Optional[int] = None
embedding: Optional[str] = None
created_at: Optional[str] = None
class Config:
from_attributes = True
class CategoryCreate(CategoryBase):
pass
class CategoryUpdate(BaseModel):
label: Optional[str] = None
embedding: Optional[str] = None
class IntentBase(BaseModel):
name: str
priority: Union[int, str]
category_id: int
class Intent(IntentBase):
id: Optional[int] = None
embedding: Optional[str] = None
created_at: Optional[str] = None
class Config:
from_attributes = True
class IntentCreate(IntentBase):
pass
class IntentUpdate(BaseModel):
name: Optional[str] = None
priority: Optional[Union[int, str]] = None
category_id: Optional[int] = None
embedding: Optional[str] = None
class IntentWithCategory(Intent):
category_label: Optional[str] = None
# ==================== MAPS MODELS ====================
class City(BaseModel):
id: Optional[int] = None
name: Optional[str] = None
created_at: Optional[str] = None
class Config:
from_attributes = True
class CityCreate(BaseModel):
name: str
class District(BaseModel):
id: Optional[int] = None
name: Optional[str] = None
lname: Optional[str] = None
city: Optional[int] = None
created_at: Optional[str] = None
class Config:
from_attributes = True
class DistrictCreate(BaseModel):
name: str
lname: Optional[str] = None
city: int
class Street(BaseModel):
id: Optional[int] = None
name: Optional[str] = None
type: Optional[str] = None
district_id: Optional[int] = None
city_id: Optional[int] = None
positions: Optional[list] = None
toll: Optional[bool] = None
flooding: Optional[bool] = None
created_at: Optional[str] = None
class Config:
from_attributes = True
class StreetCreate(BaseModel):
name: str
type: Optional[str] = None
district_id: int
city_id: int
class CityUpdate(BaseModel):
name: Optional[str] = None
class DistrictUpdate(BaseModel):
name: Optional[str] = None
lname: Optional[str] = None
city: Optional[int] = None
class StreetUpdate(BaseModel):
name: Optional[str] = None
type: Optional[str] = None
district_id: Optional[int] = None
city_id: Optional[int] = None
positions: Optional[list] = None
toll: Optional[bool] = None
flooding: Optional[bool] = None
# ==================== POSITIONS MODEL ====================
class Position(BaseModel):
id: Optional[int] = None
street_id: Optional[int] = None
x: Optional[float] = None
y: Optional[float] = None
streets: Optional[list] = None
ban: Optional[list] = None
speed: Optional[dict] = None
park: Optional[bool] = None
lane: Optional[int] = None
tool: Optional[int] = None
flooding: Optional[bool] = None
ban_turn: Optional[Any] = None # cấm rẽ
ban_vehicle: Optional[Any] = None # cấm phương tiện
ban_hours: Optional[Any] = None # cấm giờ
ban_weight: Optional[Any] = None # cấm tải trọng
class Config:
from_attributes = True
class PositionCreate(BaseModel):
street_id: int
x: float
y: float
ban: Optional[list] = None
speed: Optional[dict] = None
park: Optional[bool] = None
lane: Optional[int] = None
tool: Optional[int] = None
flooding: Optional[bool] = None
ban_turn: Optional[Any] = None
ban_vehicle: Optional[Any] = None
ban_hours: Optional[Any] = None
ban_weight: Optional[Any] = None
class PositionUpdate(BaseModel):
street_id: Optional[int] = None
x: Optional[float] = None
y: Optional[float] = None
ban: Optional[list] = None
speed: Optional[dict] = None
park: Optional[bool] = None
lane: Optional[int] = None
tool: Optional[int] = None
flooding: Optional[bool] = None
ban_turn: Optional[Any] = None
ban_vehicle: Optional[Any] = None
ban_hours: Optional[Any] = None
ban_weight: Optional[Any] = None
# ==================== GROUPS MODEL ====================
class Group(BaseModel):
id: Optional[int] = None
lat_center: Optional[float] = None
long_center: Optional[float] = None
streets: Optional[list] = None # JSON array of street ids
neighbor: Optional[list] = None # JSON array of group ids
created_at: Optional[str] = None
class Config:
from_attributes = True
class GroupCreate(BaseModel):
lat_center: float
long_center: float
streets: List[int]
neighbor: Optional[List[int]] = None
class GroupUpdate(BaseModel):
lat_center: Optional[float] = None
long_center: Optional[float] = None
streets: Optional[List[int]] = None
neighbor: Optional[List[int]] = None