import { getAdmin } from "../../../../../../lib/admin-auth";
import { DB } from "../../../../../../server/database.ts";
import { audit, publicUrl } from "../../../../../../lib/admin-operations";
export async function POST(
  request: Request,
  { params }: { params: Promise<{ id: string }> },
) {
  const admin = await getAdmin();
  if (!admin) return Response.json({ error: "unauthorized" }, { status: 401 });
  const { id } = await params,
    now = new Date().toISOString();
  const result = await DB.prepare(
    "UPDATE outbox_jobs SET status='PENDING',attempts=0,available_at=?,last_error_code=NULL,updated_at=? WHERE id=? AND status='FAILED'",
  )
    .bind(now, now, id)
    .run();
  if (!result.meta.changes)
    return Response.json({ error: "not_found" }, { status: 404 });
  await audit(admin.userId, "JOB_RETRIED", "OUTBOX_JOB", id);
  return Response.redirect(
    publicUrl(request, "/administracao/processamento"),
    303,
  );
}
