import { NextResponse } from "next/server";
import { runScheduledAnomalyScan } from "@/lib/queries/election-security-queries";

/**
 * Cron endpoint for election anomaly scanning.
 * Protect with CRON_SECRET: Authorization: Bearer <CRON_SECRET>
 */
export async function GET(request: Request) {
  const secret = process.env.CRON_SECRET;
  if (secret) {
    const header = request.headers.get("authorization");
    if (header !== `Bearer ${secret}`) {
      return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
    }
  } else if (process.env.NODE_ENV === "production") {
    return NextResponse.json(
      { error: "CRON_SECRET is not configured" },
      { status: 503 }
    );
  }

  try {
    const result = await runScheduledAnomalyScan();
    return NextResponse.json({ ok: true, ...result });
  } catch (err) {
    console.error("election anomaly cron failed", err);
    return NextResponse.json({ error: "Scan failed" }, { status: 500 });
  }
}

export async function POST(request: Request) {
  return GET(request);
}
