import { createRouteHandlerClient } from "@supabase/auth-helpers-nextjs";
import { cookies } from "next/headers";
import { NextResponse } from "next/server";

export const dynamic = "force-dynamic";

export async function GET() {
  try {
    const supabase = createRouteHandlerClient({ cookies });

    const { data: { session } } = await supabase.auth.getSession();
    if (!session) {
      return NextResponse.json({ error: "Non autorisé" }, { status: 401 });
    }

    // Vérifier que l'utilisateur est staff
    const { data: staffUser } = await supabase
      .from("staff_users")
      .select("is_staff")
      .eq("user_id", session.user.id)
      .single();

    if (!staffUser || !staffUser.is_staff) {
      return NextResponse.json({ error: "Accès refusé" }, { status: 403 });
    }

    // Récupérer la liste des NAA avec les infos de l'apporteur
    const { data: naaList, error } = await supabase
      .from("naa_documents")
      .select(`
        *,
        referrers!referrer_id (
          name
        )
      `)
      .order("created_at", { ascending: false });

    if (error) {
      console.error("Erreur lors de la récupération des NAA:", error);
      return NextResponse.json({ error: error.message }, { status: 500 });
    }

    // Transformer les données pour inclure le nom de l'apporteur
    const formattedList = (naaList || []).map((naa: any) => ({
      ...naa,
      referrer_name: naa.referrers?.name || null,
      referrers: undefined
    }));

    return NextResponse.json(formattedList);
  } catch (error: any) {
    console.error("Erreur GET /api/staff/naa:", error);
    return NextResponse.json(
      { error: error.message || "Erreur serveur" },
      { status: 500 }
    );
  }
}
