import { getSessionUser } from "@/lib/auth";
import {
  getMailboxSearchSuggestionsByEmail,
  type MailSearchSuggestion,
} from "@/lib/official-mail";

export async function GET(request: Request) {
  const user = await getSessionUser();

  if (!user) {
    return Response.json({ error: "unauthorized" }, { status: 401 });
  }

  const { searchParams } = new URL(request.url);
  const folder = searchParams.get("folder")?.trim() || "inbox";
  const query = searchParams.get("q")?.trim() ?? "";

  if (!query) {
    return Response.json({
      ok: true,
      suggestions: [] satisfies MailSearchSuggestion[],
    });
  }

  const suggestions = await getMailboxSearchSuggestionsByEmail(user.email, {
    folder,
    limit: 8,
    query,
  });

  return Response.json({
    ok: true,
    suggestions,
  });
}
