from fastapi import APIRouter, Depends, Query
from sqlalchemy.orm import Session

from app.api.deps import get_current_user
from app.db.session import get_db
from app.schemas.search import SearchResponse
from app.schemas.user_context import CurrentUser
from app.services.search_service import SearchService

router = APIRouter()


@router.get("", response_model=SearchResponse)
def global_search(
    q: str = Query(..., min_length=2),
    page: int = Query(1, ge=1),
    page_size: int = Query(20, ge=1, le=50),
    current_user: CurrentUser = Depends(get_current_user),
    db: Session = Depends(get_db),
):
    items, total = SearchService(db).search(current_user.agency_id, q, page, page_size)
    return {"query": q.strip(), "items": items, "total": total, "page": page, "page_size": page_size}
