// app/api/check-user-status/route.ts
export const dynamic = "force-dynamic";
import { NextResponse } from "next/server";
import { createClient } from "@supabase/supabase-js";

/**
 * Endpoint pour vérifier si un utilisateur existe et a déjà activé son compte
 * Utilisé par la page d'activation pour détecter les comptes déjà actifs
 */
export async function GET(request: Request) {
  try {
    const { searchParams } = new URL(request.url);
    const email = searchParams.get("email");

    if (!email) {
      return NextResponse.json(
        { error: "Email requis" },
        { status: 400 }
      );
    }

    // Utiliser le service role pour accéder aux données auth
    const admin = createClient(
      process.env.NEXT_PUBLIC_SUPABASE_URL!,
      process.env.SUPABASE_SERVICE_ROLE_KEY!,
      { auth: { autoRefreshToken: false, persistSession: false } }
    );

    // Rechercher l'utilisateur par email
    const { data: users, error } = await admin.auth.admin.listUsers();
    
    if (error) {
      console.error("❌ Erreur lors de la recherche de l'utilisateur:", error);
      return NextResponse.json(
        { error: "Erreur serveur" },
        { status: 500 }
      );
    }

    // Trouver l'utilisateur avec l'email correspondant
    const user = users.users.find(u => u.email?.toLowerCase() === email.toLowerCase());

    if (!user) {
      return NextResponse.json({
        exists: false,
        hasSignedIn: false
      });
    }

    // Vérifier si l'utilisateur a déjà signé in
    const hasSignedIn = !!user.last_sign_in_at;

    return NextResponse.json({
      exists: true,
      hasSignedIn
    });

  } catch (error: any) {
    console.error("❌ Erreur inattendue:", error);
    return NextResponse.json(
      { error: "Erreur serveur" },
      { status: 500 }
    );
  }
}
