<?php
declare(strict_types=1);

if (session_status() !== PHP_SESSION_ACTIVE) {
    session_start();
}

require_once dirname(__DIR__) . '/config/database.php';
require_once dirname(__DIR__) . '/app/Services/StudentStatisticsProfileService.php';

$db = getDbConnection();
$service = new StudentStatisticsProfileService($db);

$studentId = 0;
foreach (['student_id', 'user_id', 'id'] as $key) {
    if (!empty($_SESSION[$key])) {
        $studentId = (int)$_SESSION[$key];
        break;
    }
}

if ($studentId <= 0) {
    $fallback = $db->query(
        "SELECT id FROM students WHERE status = 'active' ORDER BY id ASC LIMIT 1"
    )->fetchColumn();

    $studentId = (int)($fallback ?: 0);
}

$message = '';
$error = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST' && $studentId > 0) {
    $token = (string)($_POST['csrf_token'] ?? '');

    if (!hash_equals((string)($_SESSION['csrf_token'] ?? ''), $token)) {
        $error = 'Phiên làm việc không hợp lệ. Vui lòng tải lại trang.';
    } else {
        $schoolName = (string)($_POST['school_name'] ?? '');
        $className = (string)($_POST['class_name'] ?? '');

        if ($service->update($studentId, $schoolName, $className)) {
            $message = 'Đã lưu thông tin trường và lớp.';
        } else {
            $error = 'Không thể lưu thông tin.';
        }
    }
}

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

$student = $studentId > 0 ? $service->getByStudentId($studentId) : null;

function e(?string $value): string
{
    return htmlspecialchars((string)$value, ENT_QUOTES, 'UTF-8');
}
?>
<!doctype html>
<html lang="vi">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Thông tin học sinh - EnglishSpeak</title>
    <link rel="stylesheet" href="../assets/css/student-statistics-profile.css?v=20260731">
</head>
<body>
<main class="profile-page">
    <section class="profile-card">
        <header>
            <span class="eyebrow">EnglishSpeak</span>
            <h1>Thông tin học sinh</h1>
            <p>Trường và lớp chỉ dùng cho thống kê, không ảnh hưởng đến Grade hoặc nội dung học.</p>
        </header>

        <?php if ($message): ?>
            <div class="notice success"><?= e($message) ?></div>
        <?php endif; ?>

        <?php if ($error): ?>
            <div class="notice error"><?= e($error) ?></div>
        <?php endif; ?>

        <?php if (!$student): ?>
            <div class="notice error">Không tìm thấy học sinh.</div>
        <?php else: ?>
            <div class="student-summary">
                <div>
                    <span>Học sinh</span>
                    <strong><?= e((string)$student['full_name']) ?></strong>
                </div>
                <div>
                    <span>Grade hệ thống</span>
                    <strong>
                        <?= !empty($student['grade']) ? 'Grade ' . (int)$student['grade'] : 'Chưa chọn' ?>
                    </strong>
                </div>
            </div>

            <form method="post">
                <input
                    type="hidden"
                    name="csrf_token"
                    value="<?= e((string)$_SESSION['csrf_token']) ?>"
                >

                <label>
                    <span>Trường</span>
                    <input
                        type="text"
                        name="school_name"
                        maxlength="255"
                        value="<?= e((string)($student['school_name'] ?? '')) ?>"
                        placeholder="Ví dụ: Trường Tiểu học Phước Ngãi"
                        autocomplete="organization"
                    >
                    <small>Chỉ dùng để thống kê và báo cáo.</small>
                </label>

                <label>
                    <span>Lớp thực tế</span>
                    <input
                        type="text"
                        name="class_name"
                        maxlength="50"
                        value="<?= e((string)($student['class_name'] ?? '')) ?>"
                        placeholder="Ví dụ: 5A1"
                    >
                    <small>Không phải lớp học trong hệ thống EnglishSpeak.</small>
                </label>

                <button type="submit">Lưu thông tin</button>
            </form>
        <?php endif; ?>
    </section>
</main>
</body>
</html>
