import { getSessionUser } from "@/lib/auth";
import { refreshMailboxFolderStatusByEmail } from "@/lib/official-mail";

export const runtime = "nodejs";
export const dynamic = "force-dynamic";

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

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

  const searchParams = new URL(request.url).searchParams;
  const folder = searchParams.get("folder")?.trim() || "inbox";
  const force = searchParams.get("force") === "1";

  try {
    const status = await refreshMailboxFolderStatusByEmail(user.email, {
      folder,
      force,
    });

    return Response.json({ ok: true, status });
  } catch (error) {
    const message = error instanceof Error ? error.message : "folder-status-failed";
    console.warn(`[mailbox-folder-status] failed mailbox=${user.email} message=${message}`);
    return Response.json(
      { error: "folder-status-failed", ok: false },
      { status: 503 },
    );
  }
}
