<?php
error_reporting(0);
ini_set('display_errors', 0);
ob_start();

header('Content-Type: application/json');
require_once '../config/config.php';
require_once '../config/database.php';
require_once '../config/session.php';

if (session_status() === PHP_SESSION_NONE) {
    SessionManager::startSession();
}

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo json_encode(['success' => false, 'message' => 'Méthode non autorisée']);
    exit;
}

// CORRECTION : Utiliser les vraies clés de session
if (!isset($_SESSION['user_id']) || $_SESSION['type_libelle'] !== 'enseignant') {
    echo json_encode(['success' => false, 'message' => 'Non autorisé']);
    exit;
}

$id_eleve = $_POST['id_eleve'] ?? null;

if (!$id_eleve) {
    echo json_encode(['success' => false, 'message' => 'ID élève manquant']);
    exit;
}

try {
    $db = Database::getInstance()->getConnection();
    
    $stmt = $db->prepare("SELECT login FROM utilisateurs WHERE id_utilisateur = ? AND id_type IN (2, 3)");
    $stmt->execute([$id_eleve]);
    $eleve = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$eleve) {
        echo json_encode(['success' => false, 'message' => 'Élève non trouvé']);
        exit;
    }
    
    $nouveau_mdp = (strpos($eleve['login'], 'test.') === 0) ? 'test2025' : 'eleve2025';
    $mdp_hash = password_hash($nouveau_mdp, PASSWORD_DEFAULT);
    
    $stmt = $db->prepare("UPDATE utilisateurs SET mot_de_passe = ? WHERE id_utilisateur = ?");
    $stmt->execute([$mdp_hash, $id_eleve]);
    
    echo json_encode([
        'success' => true, 
        'message' => "Mot de passe réinitialisé avec succès à $nouveau_mdp",
        'data' => [
            'login' => $eleve['login'],
            'nouveau_mdp' => $nouveau_mdp
        ]
    ]);
    
} catch (Exception $e) {
    echo json_encode(['success' => false, 'message' => 'Erreur serveur: ' . $e->getMessage()]);
}

ob_end_flush();
?>
