from fastapi import APIRouter, Depends, Query from sqlalchemy.ext.asyncio import AsyncSession from app.db import get_session from app.services.catalog import CatalogService router = APIRouter() @router.get("/institutions") async def institutions( topic: str | None = None, source_tier: str | None = None, page_size: int = Query(20, ge=1, le=50), session: AsyncSession = Depends(get_session), ) -> dict: return await CatalogService(session).institutions(topic=topic, source_tier=source_tier, page_size=page_size) @router.get("/institutions/{institution_id}") async def institution_detail(institution_id: str, session: AsyncSession = Depends(get_session)) -> dict: return await CatalogService(session).institution_detail(institution_id)