"""FlowDeck — unified search router (v5.0.0). ``GET /api/search?q=`` backs the Ctrl+K command palette. Returns matching editor pages and databases scoped to the current user's accessible workspaces. """ from __future__ import annotations from fastapi import APIRouter, Query, Request from app.auth.session import SessionManager from app.services.search import search as search_service router = APIRouter(tags=["search"]) @router.get("/api/search") async def search(request: Request, q: str = Query(default="")): user = SessionManager.decode_session(request.cookies.get("flowdeck_session", "")) user_id = user.get("id") if user and user.get("id") else None data = search_service(q, user_id=user_id) return { "query": q, "pages": data["pages"], "collections": data["collections"], "total": len(data["pages"]) + len(data["collections"]), }