import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import DashboardLayout from "@/components/DashboardLayout"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { trpc } from "@/lib/trpc"; import { Building2, Users, TrendingUp, Activity } from "lucide-react"; import { Skeleton } from "@/components/ui/skeleton"; export default function AdminEtablissements() { const { data: etablissements, isLoading } = trpc.etablissements.list.useQuery(); const totalApprenants = etablissements?.reduce((sum, etab) => sum + etab.nombreApprenants, 0) || 0; const totalActifs = etablissements?.reduce((sum, etab) => sum + etab.apprenantsActifs, 0) || 0; const tauxGlobal = totalApprenants > 0 ? Math.round((totalActifs / totalApprenants) * 100) : 0; return (

Établissements

Vue d'ensemble des établissements et de leur participation

{/* Statistiques globales */}
Établissements
{etablissements?.length || 0}

Nombre total

Apprenants
{totalApprenants}

Tous établissements

Apprenants actifs
{totalActifs}

Avec inscriptions

Taux de participation
{tauxGlobal}%

Global

{/* Tableau des établissements */} Liste des établissements Statistiques de participation par établissement {isLoading ? (
) : etablissements && etablissements.length > 0 ? ( Code établissement Nombre d'apprenants Apprenants actifs Taux de participation {etablissements.map((etab) => ( {etab.codeEtablissement} {etab.nombreApprenants} {etab.apprenantsActifs} = 70 ? "bg-green-100 text-green-800" : etab.tauxParticipation >= 40 ? "bg-orange-100 text-orange-800" : "bg-red-100 text-red-800" }`}> {etab.tauxParticipation}% ))}
) : (

Aucun établissement trouvé

)}
); }