24 lines
800 B
Python
24 lines
800 B
Python
"""Route stop junction model."""
|
|
from sqlmodel import SQLModel, Field, Column
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
from uuid import UUID, uuid4
|
|
from sqlalchemy import DateTime, func
|
|
|
|
|
|
class RouteStop(SQLModel, table=True):
|
|
"""Route stop junction table connecting routes to their stops."""
|
|
|
|
__tablename__ = "route_stops"
|
|
|
|
id: Optional[UUID] = Field(default_factory=uuid4, primary_key=True)
|
|
route_id: UUID = Field(foreign_key="routes.id")
|
|
stop_id: UUID = Field(foreign_key="bus_stops.id")
|
|
stop_order: int
|
|
travel_time_minutes: Optional[int] = None
|
|
stop_delay_minutes: int = 0
|
|
is_pickup_point: bool = True
|
|
is_dropoff_point: bool = True
|
|
created_at: Optional[datetime] = Field(sa_column=Column(DateTime, server_default=func.now()))
|
|
|