import { applicationProviders } from "@/lib/application-providers";
import { applicationReply, applicationRoute } from "@/lib/application-http";
import { ApplicationError } from "@/lib/application-record";
import {
  runApplicationMaintenance,
  schedulerAuthorized,
} from "@/lib/application-scheduler";
export const runtime = "nodejs";
export const maxDuration = 60;
export async function GET(request: Request) {
  return applicationRoute(async () => {
    const providers = applicationProviders();
    if (
      !schedulerAuthorized(
        request.headers.get("authorization"),
        providers.config.CRON_SECRET,
      )
    )
      throw new ApplicationError(401, "Scheduler authentication required.");
    const result = await runApplicationMaintenance(
      providers,
      providers.maintenance,
    );
    console.info("Application maintenance counts", result);
    return applicationReply(result);
  });
}
