️ Use of integer to store Line and Stop id

Update Line and Stop schemas.
This commit is contained in:
2023-09-09 21:23:36 +02:00
parent 6c149e844b
commit f7f0fdb980
4 changed files with 16 additions and 12 deletions

View File

@@ -31,6 +31,10 @@ class IdfmInterface:
async def startup(self) -> None:
...
@staticmethod
def _format_line_id(line_id: str) -> int:
return int(line_id[1:] if line_id[0] == "C" else line_id)
async def render_line_picto(self, line: Line) -> tuple[None | str, None | str]:
line_picto_path = line_picto_format = None
target = f"/tmp/{line.id}_repr"
@@ -81,7 +85,6 @@ class IdfmInterface:
if (stop := await Stop.get_by_id(stop_id)) is not None:
expected_stop_ids = {stop.id}
elif (stop_area := await StopArea.get_by_id(stop_id)) is not None:
expected_stop_ids = {stop.id for stop in stop_area.stops}
else:
@@ -105,7 +108,8 @@ class IdfmInterface:
if (
dst_names := journey.DestinationName
) and monitored_stop_id in expected_stop_ids:
line_id = journey.LineRef.value.split(":")[-2]
raw_line_id = journey.LineRef.value.split(":")[-2]
line_id = IdfmInterface._format_line_id(raw_line_id)
destinations[line_id].add(dst_names[0].value)
return destinations

View File

@@ -53,8 +53,8 @@ class Line(BaseModel):
transportMode: TransportMode
backColorHexa: str
foreColorHexa: str
operatorId: str
operatorId: int
accessibility: IdfmState
visualSignsAvailable: IdfmState
audibleSignsAvailable: IdfmState
stopIds: list[str]
stopIds: list[int]

View File

@@ -9,7 +9,7 @@ class Stop(BaseModel):
town: str
epsg3857_x: float
epsg3857_y: float
lines: list[str]
lines: list[int]
class StopArea(BaseModel):
@@ -17,7 +17,7 @@ class StopArea(BaseModel):
name: str
town: str
type: StopAreaType
lines: list[str] # SNCF lines are linked to stop areas and not stops.
lines: list[int] # SNCF lines are linked to stop areas and not stops.
stops: list[Stop]