from typing import Annotated import asyncpg from dishka.integrations.fastapi import DishkaRoute, FromDishka from fastapi import APIRouter, Query from utils.search.models import SearchFilters, SearchHit from utils.search.repository import search_messages router = APIRouter(prefix="/api/search", tags=["search"], route_class=DishkaRoute) @router.get("") async def search( pool: FromDishka[asyncpg.Pool], filters: Annotated[SearchFilters, Query()] ) -> list[SearchHit]: return await search_messages(pool, filters)