import { getAdminSessionFromRequest } from "../../../../../../auth";
import { fail } from "../../../../_lib";
import { NextResponse } from "next/server";

const headers = ["Name", "Email", "Company", "Category", "Amount", "Registration", "Payment", "QR", "Chapter"];

const sampleRows = [
  ["Maria Santos", "maria.santos.import@example.test", "PeopleWorks Solutions", "PMAP Member", "12500", "Confirmed", "Paid", "Issued", ""],
  ["Jose Ramirez", "jose.ramirez.import@example.test", "Northstar HR", "Non-member", "15000", "Pending", "For Review", "Queued", ""],
  ["Aileen Cruz", "aileen.cruz.import@example.test", "TalentBridge Asia", "Chapter Delegate", "11000", "Confirmed", "Paid", "Issued", "Cebu Chapter"],
  ["Ramon De Leon", "ramon.deleon.import@example.test", "Global Foods Corp.", "Corporate Group", "10000", "Confirmed", "Invoice", "Hold", ""],
  ["Katrina Lim", "katrina.lim.import@example.test", "FutureBank Philippines", "PMAP Member", "12500", "Confirmed", "Paid", "Issued", ""],
  ["Miguel Tan", "miguel.tan.import@example.test", "CloudNine Digital", "Speaker", "0", "Confirmed", "Comped", "Issued", ""],
  ["Denise Uy", "denise.uy.import@example.test", "Mindanao HR Council", "Chapter Delegate", "11000", "Pending", "Unpaid", "Not Ready", "CDO Chapter"],
  ["Paolo Garcia", "paolo.garcia.import@example.test", "BuildRight Holdings", "Corporate Group", "10000", "Confirmed", "Paid", "Issued", ""],
  ["Sophia Reyes", "sophia.reyes.import@example.test", "LearnLab PH", "VIP Guest", "0", "Waitlisted", "Pending", "Hold", ""],
  ["Carlo Mendoza", "carlo.mendoza.import@example.test", "OneHealth Network", "Guest Only", "0", "Pending", "Pending", "Not Ready", ""]
];

function csvValue(value: string) {
  return `"${value.replaceAll("\"", "\"\"")}"`;
}

export async function GET(request: Request) {
  if (!await getAdminSessionFromRequest(request)) return fail(request, "UNAUTHORIZED", "Admin login is required.", 401);
  const csv = [headers, ...sampleRows].map((row) => row.map(csvValue).join(",")).join("\n");
  return new NextResponse(csv, {
    headers: {
      "Content-Type": "text/csv; charset=utf-8",
      "Content-Disposition": "attachment; filename=\"participants-import-template.csv\""
    }
  });
}
