<?php
// === PROTECTION JSON - NE PAS SUPPRIMER ===
error_reporting(0);
ini_set('display_errors', 0);
ob_start();
// === FIN PROTECTION ===


/**
 * API élèves - VERSION ULTRA ROBUSTE
 * Capture TOUTES les erreurs avant d'envoyer le JSON
 */

// Démarrer le buffer AVANT tout
ob_start();

// Désactiver l'affichage des erreurs
ini_set('display_errors', 0);
error_reporting(0);

// Fonction pour nettoyer et envoyer JSON
function sendJSON($data) {
    // Vider et ignorer tout ce qui a été bufferisé (erreurs, warnings, etc.)
    ob_end_clean();
    
    // Envoyer les headers
    header('Content-Type: application/json; charset=utf-8');
    header('Cache-Control: no-cache, must-revalidate');
    
    // Envoyer le JSON
    echo json_encode($data);
    exit;
}

try {
    // Includes
    require_once '../config/config.php';
    require_once '../config/database.php';
    require_once '../config/session.php';
    
    // Vérifier authentification
    if (!SessionManager::isLoggedIn()) {
        sendJSON([
            'success' => false,
            'message' => 'Non connecté'
        ]);
    }
    
    $user = SessionManager::getUser();
    if ($user['id_type'] != 1) {
        sendJSON([
            'success' => false,
            'message' => 'Accès réservé aux enseignants'
        ]);
    }
    
    // Connexion BDD
    $db = Database::getInstance()->getConnection();
    
    // Paramètre
    if (!isset($_GET['id_classe'])) {
        sendJSON([
            'success' => false,
            'message' => 'Paramètre id_classe manquant'
        ]);
    }
    
    $id_classe = (int)$_GET['id_classe'];
    
    // Requête
    $stmt = $db->prepare("
        SELECT 
            id_utilisateur,
            login,
            nom,
            prenom,
            actif,
            date_inscription
        FROM utilisateurs
        WHERE id_classe = ? AND id_type IN (2, 3)
        ORDER BY nom, prenom
    ");
    $stmt->execute([$id_classe]);
    $eleves = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Succès
    sendJSON([
        'success' => true,
        'eleves' => $eleves,
        'total' => count($eleves),
        'mot_de_passe_defaut' => 'eleve2025',
        'info' => 'Mot de passe par défaut lors de l\'import'
    ]);
    
} catch (Exception $e) {
    sendJSON([
        'success' => false,
        'message' => 'Erreur: ' . $e->getMessage(),
        'file' => $e->getFile(),
        'line' => $e->getLine()
    ]);
}
?>
