from typing import List, Optional, TypedDict from sqlalchemy.orm import selectinload from app.models.base import Pool from app.models.bridges import Bridge class BridgelinesDict(TypedDict): version: str bridgelines: List[str] def bridgelines( pool: Pool, *, distribution_method: Optional[str] = None ) -> BridgelinesDict: # Fetch bridges with selectinload for related data query = Bridge.query.options(selectinload(Bridge.conf)).filter( Bridge.destroyed.is_(None), Bridge.deprecated.is_(None), Bridge.bridgeline.is_not(None), ) if distribution_method is not None: query = query.filter(Bridge.conf.has(distribution_method=distribution_method)) # Collect bridgelines specific to the pool bridgelines = [b.bridgeline for b in query.all() if b.conf.pool_id == pool.id] # Return dictionary directly, inlining the previous `to_dict` functionality return {"version": "1.0", "bridgelines": bridgelines}