import { prisma } from "@pmap/database";
import { fail, ok } from "../../_lib";

export async function POST(request: Request) {
  const secret = request.headers.get("x-cron-secret");
  if (!secret || secret !== process.env.CRON_SECRET) return fail(request, "UNAUTHORIZED", "Invalid cron secret.", 401);

  const job = await prisma.backgroundJob.findFirst({
    where: { status: "PENDING", availableAt: { lte: new Date() } },
    orderBy: { availableAt: "asc" }
  });
  if (!job) return ok(request, { processed: 0 });

  await prisma.backgroundJob.update({
    where: { id: job.id },
    data: { status: "COMPLETED", attempts: { increment: 1 }, startedAt: new Date(), completedAt: new Date(), lockedBy: "cron-endpoint" }
  });

  return ok(request, { processed: 1, jobType: job.jobType });
}
