import { NextRequest, NextResponse } from 'next/server';
import { prisma } from '@/lib/prisma';
import bcrypt from 'bcryptjs';

export async function POST(request: NextRequest) {
  try {
    const { firstName, lastName, email, clientCount, partnerCount } = await request.json();

    // Vérifier que tous les champs sont fournis
    if (!firstName || !lastName || !email || !clientCount || !partnerCount) {
      return NextResponse.json(
        { error: 'Tous les champs sont requis' },
        { status: 400 }
      );
    }

    // Rechercher l'utilisateur par email
    const user = await prisma.user.findUnique({
      where: { email: email.toLowerCase() },
      include: {
        managedClients: true,
        managerData: {
          include: {
            clients: true,
            factures: true,
          }
        },
      }
    });

    if (!user) {
      return NextResponse.json(
        { error: 'Utilisateur non trouvé' },
        { status: 404 }
      );
    }

    // Vérifier les informations fournies
    const isFirstNameMatch = user.firstName?.toLowerCase() === firstName.toLowerCase();
    const isLastNameMatch = user.lastName?.toLowerCase() === lastName.toLowerCase();
    const isClientCountMatch = user.managedClients.length === parseInt(clientCount);
    const isPartnerCountMatch = user.managerData?.factures.length === parseInt(partnerCount);

    if (!isFirstNameMatch || !isLastNameMatch || !isClientCountMatch || !isPartnerCountMatch) {
      return NextResponse.json(
        { error: 'Les informations fournies ne correspondent pas à notre base de données' },
        { status: 400 }
      );
    }

    // Si toutes les vérifications passent, retourner les informations de l'utilisateur (sans le mot de passe)
    const { password, ...userWithoutPassword } = user;

    return NextResponse.json({
      success: true,
      message: 'Identité vérifiée avec succès',
      user: userWithoutPassword
    });

  } catch (error) {
    console.error('Erreur lors de la vérification de l\'identité:', error);
    return NextResponse.json(
      { error: 'Erreur interne du serveur' },
      { status: 500 }
    );
  }
} 