import { NextRequest, NextResponse } from "next/server"; import { getPool } from "@/services/database"; // DELETE - Supprimer complètement un utilisateur export async function DELETE( request: NextRequest, { params }: { params: Promise<{ userId: string }> } ) { try { const { userId } = await params; if (!userId) { return NextResponse.json( { error: "L'ID de l'utilisateur est requis" }, { status: 400 } ); } const pool = getPool(); // Vérifier que l'utilisateur existe const userCheck = await pool.query( "SELECT uuid_id, first_name, last_name FROM users WHERE uuid_id = $1", [userId] ); if (userCheck.rows.length === 0) { return NextResponse.json( { error: "Utilisateur non trouvé" }, { status: 404 } ); } const user = userCheck.rows[0]; // Vérifier que l'utilisateur n'est pas dans une équipe if (user.team_id) { return NextResponse.json( { error: "Impossible de supprimer un utilisateur qui appartient à une équipe. Retirez-le d'abord de son équipe.", }, { status: 409 } ); } // Supprimer l'utilisateur (les évaluations par skills seront supprimées automatiquement grâce aux contraintes CASCADE) await pool.query("DELETE FROM users WHERE uuid_id = $1", [userId]); return NextResponse.json({ message: `Utilisateur ${user.first_name} ${user.last_name} supprimé avec succès`, }); } catch (error) { console.error("Error deleting user:", error); return NextResponse.json( { error: "Erreur lors de la suppression de l'utilisateur" }, { status: 500 } ); } }