<?php
require_once __DIR__ . "/../../bootstrap.php";
require_once __DIR__ . '/../../src/AdminAuth.php';
AdminAuth::requireLogin();

if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

require_once APP_ROOT . '/src/Controllers/ThesisEditController.php';

$thesisId = isset($_GET['id']) ? intval($_GET['id']) : 0;

if ($thesisId <= 0) {
    die("ID invalide");
}

$autofocusField = App::consumeAutofocus();

// Form help blocks for editable généralités
$helpBlocks = Database::getInstance()->getAllFormHelpBlocks();
$helpFn = fn(string $key) => empty($helpBlocks[$key]['enabled']) ? '' : ($helpBlocks[$key]['content'] ?? '');

function old($key, $default = "") {
    global $formData;
    if (!isset($formData[$key])) return $default;
    if (is_array($formData[$key])) return $formData[$key]; // Return raw array for callers that handle it
    if ($formData[$key] === null) return $default;
    return htmlspecialchars((string)$formData[$key]);
}

try {
    $ctrl = ThesisEditController::create();
    $view = $ctrl->load($thesisId);
    extract($view);
} catch (Exception $e) {
    error_log("Error loading edit page: " . $e->getMessage());
    die("Erreur lors du chargement: " . $e->getMessage());
}

$isAdmin = true; $bodyClass = 'admin-body';
$extraCss  = ['/assets/css/form.css'];
$extraJs   = ['/assets/js/sortable.min.js', '/assets/js/file-upload-queue.js', '/assets/js/beforeunload-guard.js'];
require_once APP_ROOT . '/templates/head.php';
include APP_ROOT . '/templates/header.php';
include APP_ROOT . '/templates/admin/edit.php';
require_once APP_ROOT . '/templates/admin/footer.php';
