import { NextResponse } from "next/server";
import { getSessionUser } from "@/lib/auth/get-session-user";
import { ensureScheduledPublishPoller } from "@/lib/scheduling/cron-poller";
import { evaluateSchedulerHealth } from "@/lib/scheduling/scheduler-health";

export async function POST() {
  const user = await getSessionUser();
  if (!user) {
    return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
  }

  if (!process.env.CRON_SECRET?.trim()) {
    return NextResponse.json(
      { error: "CRON_SECRET not configured on server." },
      { status: 503 },
    );
  }

  const justStarted = ensureScheduledPublishPoller();
  const health = await evaluateSchedulerHealth({ autoStartPoller: false });

  return NextResponse.json({
    success: true,
    justStarted,
    scheduler: health,
    message: justStarted
      ? `Scheduler started on this server (every ${health.intervalMinutes} min).`
      : health.status === "running"
        ? "Scheduler is already active."
        : health.statusLabel,
  });
}
