import { getSessionUser } from "@/lib/auth";
import { getAppSessionUserByToken, readAppBearerToken } from "@/lib/app-auth";
import { getMailboxRecipientSuggestionsByEmail } from "@/lib/official-mail";

export async function GET(request: Request) {
  const user = (await getSessionUser()) ??
    (await getAppSessionUserByToken(readAppBearerToken(request.headers), request.headers));

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

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

  const suggestions = await getMailboxRecipientSuggestionsByEmail(user.email, {
    limit: 10,
    query,
  });

  return Response.json({
    ok: true,
    suggestions,
  }, { headers: { "Cache-Control": "private, no-store" } });
}
