import { applicationProviders } from "@/lib/application-providers";
import {
  applicationBody,
  applicationReply,
  applicationRoute,
} from "@/lib/application-http";
import { requireStaff, staffCookie } from "@/lib/staff-auth";
import { createStaffApplication } from "@/lib/staff-service";
export async function POST(request: Request) {
  return applicationRoute(async () => {
    const providers = applicationProviders(),
      staff = await requireStaff(
        staffCookie(request, providers.mock),
        providers,
      );
    const actor = {
      actor: staff.uid,
      author: staff.email.toLowerCase(),
      team: providers.config.STAFF_EMAIL_ALLOWLIST,
    };
    return applicationReply(
      await createStaffApplication(
        await applicationBody(request, providers.origin),
        actor,
        providers.repo,
      ),
      201,
    );
  });
}
