import { NextResponse } from "next/server";
import { getSessionUser } from "@/lib/auth/get-session-user";
import { evaluateAutoPostDiagnostics } from "@/lib/scheduling/auto-post-diagnostics";
import { readAutoPostLogs } from "@/lib/logging/auto-post-logger";

export async function GET(request: Request) {
  const user = await getSessionUser();
  if (!user) {
    return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
  }

  const { searchParams } = new URL(request.url);
  const projectId = searchParams.get("projectId") ?? undefined;
  const includeLogs = searchParams.get("logs") === "1";
  const logLimit = Number(searchParams.get("logLimit") ?? "50");

  const diagnostics = await evaluateAutoPostDiagnostics(user.id, projectId);
  const recentLogs = includeLogs
    ? await readAutoPostLogs({ projectId, limit: logLimit })
    : undefined;

  return NextResponse.json({
    ...diagnostics,
    logFile: "logs/auto-post-YYYY-MM-DD.log",
    recentLogs,
  });
}
