import { NextResponse } from "next/server";
import { db } from "@/lib/db";
import { cookies } from "next/headers";
import { verifyToken } from "@/lib/auth";

export async function GET() {
  try {
    const cookieStore = await cookies();
    const token = cookieStore.get("token")?.value;

    if (!token) {
      return NextResponse.json({ error: "No autorizado" }, { status: 401 });
    }

    const decoded: any = verifyToken(token);
    
    // Verificamos estrictamente que el rol sea 'leader'
    if (!decoded || decoded.role !== 'leader') {
      return NextResponse.json({ error: "Acceso denegado" }, { status: 403 });
    }

    // --- AQUÍ ESTABA EL ERROR ---
    // Cambiamos el nombre de la variable a 'militants' para evitar conflictos
    // y asegurarnos de que solo haya UNA consulta principal.
    const [militants]: any = await db.query(
      `SELECT 
        m.*, 
        u.role as user_role 
       FROM militants m
       LEFT JOIN users u ON m.id = u.militant_id
       WHERE m.created_by = ? 
       ORDER BY m.created_at DESC`,
      [decoded.id]
    );

    return NextResponse.json(militants);

  } catch (error) {
    console.error("LEADER_FETCH_ERROR:", error);
    return NextResponse.json({ error: "Error de servidor" }, { status: 500 });
  }
}