Skip to content

Commit ad4b8e7

Browse files
tqmshYujie-MengColinToft
authored
polyline table (#62) (#63)
* polyline table (#62) * polyline and route_stops models --------- Co-authored-by: Tq <tqmeng123@gmail.com> * revert unintended changes * revert unintended changes * unintended changes * updated according to feedback (#64) * adding polyline fields to route table * lint * lint * unintended changes * simplier way * Add migration --------- Co-authored-by: Yujie <yujiemengca@gmail.com> Co-authored-by: Colin Toft <47548563+ColinToft@users.noreply.github.com> Co-authored-by: Colin Toft <colintoft@uwblueprint.org>
1 parent c5c2ead commit ad4b8e7

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

backend/python/app/models/route.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
from datetime import datetime
12
from typing import TYPE_CHECKING
23
from uuid import UUID, uuid4
34

5+
from sqlalchemy import Column, DateTime
46
from sqlmodel import Field, Relationship, SQLModel
57

68
from .base import BaseModel
@@ -16,6 +18,11 @@ class RouteBase(SQLModel):
1618
name: str = Field(default="", min_length=1, max_length=255) # can change this later
1719
notes: str = Field(default="", max_length=1000) # can change this later
1820
length: float = Field(ge=0.0) # in km, must be non-negative
21+
encoded_polyline: str | None = Field(default=None, max_length=10000)
22+
polyline_updated_at: datetime | None = Field(
23+
default=None, sa_column=Column(DateTime(timezone=True), nullable=True)
24+
)
25+
expires_at: datetime | None = Field(default=None)
1926

2027

2128
class Route(RouteBase, BaseModel, table=True):
@@ -32,7 +39,6 @@ class Route(RouteBase, BaseModel, table=True):
3239
route_stops: list["RouteStop"] = Relationship(
3340
back_populates="route", sa_relationship_kwargs={"cascade": "all, delete-orphan"}
3441
)
35-
3642
# Relationship to route group memberships
3743
route_group_memberships: list["RouteGroupMembership"] = Relationship(
3844
back_populates="route", sa_relationship_kwargs={"cascade": "all, delete-orphan"}
@@ -60,3 +66,6 @@ class RouteUpdate(SQLModel):
6066
name: str | None = None
6167
notes: str | None = None
6268
length: float | None = None
69+
encoded_polyline: str | None = None
70+
polyline_updated_at: datetime | None = None
71+
expires_at: datetime | None = None
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
"""Add polyline fields to routes table
2+
3+
Revision ID: 8574dd773368
4+
Revises: afbf8fe1a1a3
5+
Create Date: 2025-01-27 12:00:00.000000
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
import sqlmodel
11+
12+
13+
# revision identifiers, used by Alembic.
14+
revision = '8574dd773368'
15+
down_revision = 'afbf8fe1a1a3'
16+
branch_labels = None
17+
depends_on = None
18+
19+
20+
def upgrade() -> None:
21+
# ### commands auto generated by Alembic - please adjust! ###
22+
op.add_column('routes', sa.Column(
23+
'encoded_polyline', sqlmodel.sql.sqltypes.AutoString(length=10000), nullable=True))
24+
op.add_column('routes', sa.Column(
25+
'polyline_updated_at', sa.DateTime(timezone=True), nullable=True))
26+
# ### end Alembic commands ###
27+
28+
29+
def downgrade() -> None:
30+
# ### commands auto generated by Alembic - please adjust! ###
31+
op.drop_column('routes', 'polyline_updated_at')
32+
op.drop_column('routes', 'encoded_polyline')
33+
# ### end Alembic commands ###
34+

0 commit comments

Comments
 (0)