"""Bus stop model.""" from sqlmodel import SQLModel, Field, Column from datetime import datetime from typing import Optional from enum import Enum from uuid import UUID, uuid4 from sqlalchemy import DateTime, func class StopType(str, Enum): """Stop type enumeration.""" TERMINAL = "terminal" REGULAR = "regular" EXPRESS_ONLY = "express_only" class BusStop(SQLModel, table=True): """Bus stop model.""" __tablename__ = "bus_stops" id: Optional[UUID] = Field(default_factory=uuid4, primary_key=True) name: str latitude: float longitude: float city: str address: Optional[str] = None stop_type: StopType = StopType.REGULAR has_shelter: bool = False has_seating: bool = False is_accessible: bool = False stop_order: Optional[int] = None created_at: Optional[datetime] = Field(sa_column=Column(DateTime, server_default=func.now())) updated_at: Optional[datetime] = Field(sa_column=Column(DateTime, server_default=func.now(), onupdate=func.now()))