import { NextResponse } from "next/server";

import { csvDownloadResponse } from "@/lib/csv";
import { requireSuperAdmin } from "@/lib/authorization";
import { exportActiveEmployeesWithContracts } from "@/services/admin-tables.service";

export const dynamic = "force-dynamic";

export async function GET(request: Request) {
  const auth = await requireSuperAdmin(request);
  if (!auth.ok) return auth.response;

  try {
    const result = await exportActiveEmployeesWithContracts();
    const date = new Date().toISOString().slice(0, 10);
    return csvDownloadResponse(
      `salaries-contrats-actifs-${date}.csv`,
      result.columns,
      result.rows,
    );
  } catch (reason) {
    console.error("[admin-export] Active employees export failed", reason);
    return NextResponse.json(
      { message: "Export des salariés et contrats actifs impossible" },
      { status: 500 },
    );
  }
}
