<br />
<b>Warning</b>:  Undefined variable $auth in <b>/home/pevo0181/public_html/pia-soft.com/cleania/routes/index.php</b> on line <b>542</b><br />
<br />
<b>Warning</b>:  Trying to access array offset on value of type null in <b>/home/pevo0181/public_html/pia-soft.com/cleania/routes/index.php</b> on line <b>542</b><br />
<?php
// ============================================================
//  GET /api/presences.php[?mois=YYYY-MM]
//  Header: Authorization: Bearer <token>
// ============================================================
require_once __DIR__ . '/config.php';

$auth     = requireAuth();
$eleve_id = $auth['eleve_id'];
$db       = getDB();

$mois = $_GET['mois'] ?? date('Y-m');

// Statistiques globales trimestre en cours (90 jours)
$stmtStats = $db->prepare("
    SELECT
        SUM(CASE WHEN statut='present' THEN 1 ELSE 0 END)  as presents,
        SUM(CASE WHEN statut='absent'  THEN 1 ELSE 0 END)  as absences,
        SUM(CASE WHEN statut='retard'  THEN 1 ELSE 0 END)  as retards,
        COUNT(*) as total_appels
    FROM presences
    WHERE eleve_id = ?
      AND date_appel >= DATE_SUB(CURDATE(), INTERVAL 90 DAY)
");
$stmtStats->execute([$eleve_id]);
$stats = $stmtStats->fetch();

// Détail du mois sélectionné
$stmtDetail = $db->prepare("
    SELECT p.id, p.date_appel, p.periode, p.statut, p.motif,
           c.nom as classe_nom
    FROM presences p
    JOIN classes c ON c.id = p.classe_id
    WHERE p.eleve_id = ?
      AND DATE_FORMAT(p.date_appel, '%Y-%m') = ?
    ORDER BY p.date_appel DESC, p.periode ASC
");
$stmtDetail->execute([$eleve_id, $mois]);
$detail = $stmtDetail->fetchAll();

// Historique des arrivées ce mois
$stmtArr = $db->prepare("
    SELECT datetime
    FROM arrivee_ecole_eleve
    WHERE eleve_id = ?
      AND DATE_FORMAT(datetime, '%Y-%m') = ?
    ORDER BY datetime DESC
    LIMIT 20
");
$stmtArr->execute([$eleve_id, $mois]);
$arrivees = $stmtArr->fetchAll();

jsonOk([
    'stats'    => 