import { NextRequest, NextResponse } from "next/server"; import { getPool } from "@/services/database"; import { isUserAuthenticated } from "@/lib/server-auth"; // GET - Récupérer la liste des utilisateurs export async function GET(request: NextRequest) { try { // Vérifier l'authentification const isAuthenticated = await isUserAuthenticated(); if (!isAuthenticated) { return NextResponse.json({ error: "Non autorisé" }, { status: 401 }); } const pool = getPool(); // Récupérer tous les utilisateurs avec leurs informations d'équipe et d'évaluations const query = ` SELECT u.uuid_id, u.first_name, u.last_name, t.name as team_name, CASE WHEN ue.id IS NOT NULL THEN true ELSE false END as has_evaluations FROM users u LEFT JOIN teams t ON u.team_id = t.id LEFT JOIN user_evaluations ue ON u.uuid_id = ue.user_uuid ORDER BY u.first_name, u.last_name `; const result = await pool.query(query); const users = result.rows.map((row) => ({ uuid: row.uuid_id, firstName: row.first_name, lastName: row.last_name, teamName: row.team_name, hasEvaluations: row.has_evaluations, })); return NextResponse.json(users); } catch (error) { console.error("Error fetching users:", error); return NextResponse.json( { error: "Erreur lors de la récupération des utilisateurs" }, { status: 500 } ); } }