import { processMailBillingCancellationQueue } from "@/lib/billing-cancellation";

function hasValidCronSecret(request: Request) {
  const expected = process.env.OFFICIAL_MAIL_CRON_SECRET?.trim();

  if (!expected) {
    return false;
  }

  const provided = request.headers.get("x-officialmail-cron-secret")?.trim();
  return provided === expected;
}

export async function POST(request: Request) {
  if (!hasValidCronSecret(request)) {
    return Response.json(
      {
        error: "forbidden",
        message: "forbidden",
      },
      { status: 403 },
    );
  }

  try {
    const summary = await processMailBillingCancellationQueue();

    return Response.json({
      ok: true,
      summary,
    });
  } catch (error) {
    return Response.json(
      {
        error: "billing-cancellation-queue-failed",
        message:
          error instanceof Error ? error.message : "billing-cancellation-queue-failed",
      },
      { status: 500 },
    );
  }
}
