🗃️ Update StopArea db models: StopArea can´t be composed of another StopAreas
This commit is contained in:
@@ -130,12 +130,12 @@ class StopArea(_Stop):
|
|||||||
id = mapped_column(BigInteger, ForeignKey("_stops.id"), primary_key=True)
|
id = mapped_column(BigInteger, ForeignKey("_stops.id"), primary_key=True)
|
||||||
|
|
||||||
type = mapped_column(Enum(StopAreaType), nullable=False)
|
type = mapped_column(Enum(StopAreaType), nullable=False)
|
||||||
stops: Mapped[list["_Stop"]] = relationship(
|
|
||||||
"_Stop",
|
stops: Mapped[list["Stop"]] = relationship(
|
||||||
|
"Stop",
|
||||||
secondary=stop_area_stop_association_table,
|
secondary=stop_area_stop_association_table,
|
||||||
back_populates="areas",
|
back_populates="areas",
|
||||||
lazy="selectin",
|
lazy="selectin",
|
||||||
# lazy="joined",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
__tablename__ = "stop_areas"
|
__tablename__ = "stop_areas"
|
||||||
@@ -157,17 +157,17 @@ class StopArea(_Stop):
|
|||||||
stop_area_ids.add(stop_area_id)
|
stop_area_ids.add(stop_area_id)
|
||||||
stop_ids.add(stop_id)
|
stop_ids.add(stop_id)
|
||||||
|
|
||||||
stop_areas_res = await session.execute(
|
stop_areas_res = await session.scalars(
|
||||||
select(StopArea)
|
select(StopArea)
|
||||||
.where(StopArea.id.in_(stop_area_ids))
|
.where(StopArea.id.in_(stop_area_ids))
|
||||||
.options(selectinload(StopArea.stops))
|
.options(selectinload(StopArea.stops))
|
||||||
)
|
)
|
||||||
stop_areas: dict[int, StopArea] = {
|
stop_areas: dict[int, StopArea] = {
|
||||||
stop_area.id: stop_area for stop_area in stop_areas_res.scalars()
|
stop_area.id: stop_area for stop_area in stop_areas_res.all()
|
||||||
}
|
}
|
||||||
|
|
||||||
stop_res = await session.execute(select(_Stop).where(_Stop.id.in_(stop_ids)))
|
stop_res = await session.execute(select(Stop).where(Stop.id.in_(stop_ids)))
|
||||||
stops: dict[int, _Stop] = {stop.id: stop for stop in stop_res.scalars()}
|
stops: dict[int, Stop] = {stop.id: stop for stop in stop_res.scalars()}
|
||||||
|
|
||||||
found = 0
|
found = 0
|
||||||
for stop_area_id, stop_id in stop_area_to_stop_ids:
|
for stop_area_id, stop_id in stop_area_to_stop_ids:
|
||||||
|
Reference in New Issue
Block a user