<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

/* ── auth.php handles session_start() internally ── */
require_once(__DIR__ . "/includes/auth.php");
require_once("/var/www/html/ims/config/db_sms_config.php");

/* ─── Teacher Details ─── */
$teacherId = $_SESSION['teacher_id'] ?? 0;

$stmt = $pdo->prepare("SELECT * FROM sms_teachers WHERE teacher_id = ? LIMIT 1");
$stmt->execute([$teacherId]);
$teacher = $stmt->fetch(PDO::FETCH_ASSOC);

$teacherName = $teacher['full_name'] ?? 'Teacher';
$empCode     = $teacher['employee_code'] ?? '-';
$photo       = !empty($teacher['photo'])
                ? "/ims/sms/uploads/teachers/" . $teacher['photo']
                : "https://ui-avatars.com/api/?name=" .
                  urlencode($teacherName) . "&background=0ea5e9&color=fff";

$_SESSION['teacher_name']  = $teacherName;
$_SESSION['employee_code'] = $empCode;
$_SESSION['teacher_photo'] = $teacher['photo'] ?? '';

/* ═══════════════════════════════════════════════════════════
   Source of truth: sms_timetable stores subject_name / teacher_name
   as plain text (no FK ids), so we match on the teacher's full name.
   This single query also identifies which classes + subjects
   this teacher is actually teaching (independent of class_teacher_id,
   which only tells us who the CLASS TEACHER is, not subject allocation).
   ═══════════════════════════════════════════════════════════ */
$allocStmt = $pdo->prepare("
    SELECT
        t.class_id,
        c.class_name,
        c.section,
        t.subject_name,
        COUNT(*) AS periods_per_week
    FROM sms_timetable t
    JOIN sms_classes   c ON c.class_id = t.class_id
    WHERE t.school_id    = ?
      AND t.teacher_name = ?
      AND t.is_break      = 0
      AND t.status        = 'ACTIVE'
      AND c.status         = 'ACTIVE'
    GROUP BY t.class_id, t.subject_name
    ORDER BY c.class_name, c.section, t.subject_name
");
$allocStmt->execute([$_SESSION['school_id'], $teacherName]);
$rows = $allocStmt->fetchAll(PDO::FETCH_ASSOC);

/* ─── Cross-reference sms_subjects for subject_code (best-effort match on class_id + name) ─── */
$subjCodeMap = [];
if (!empty($rows)) {
    $subjStmt = $pdo->prepare("
        SELECT class_id, subject_name, subject_code
        FROM sms_subjects
        WHERE school_id = ? AND status = 'ACTIVE'
    ");
    $subjStmt->execute([$_SESSION['school_id']]);
    foreach ($subjStmt->fetchAll(PDO::FETCH_ASSOC) as $s) {
        $subjCodeMap[$s['class_id'] . '|' . strtolower(trim($s['subject_name']))] = $s['subject_code'];
    }
}

/* ─── Group rows by class ─── */
$byClass = [];
foreach ($rows as $r) {
    $cid = $r['class_id'];
    if (!isset($byClass[$cid])) {
        $byClass[$cid] = [
            'class_name' => $r['class_name'],
            'section'    => $r['section'],
            'subjects'   => [],
        ];
    }
    $key  = $cid . '|' . strtolower(trim($r['subject_name']));
    $code = $subjCodeMap[$key] ?? null;
    $byClass[$cid]['subjects'][] = [
        'subject_name'     => $r['subject_name'],
        'subject_code'     => $code,
        'periods_per_week' => (int) $r['periods_per_week'],
    ];
}

$totalClassesTeaching = count($byClass);
$totalSubjectSlots    = array_sum(array_map(fn($c) => count($c['subjects']), $byClass));
$totalPeriodsWeek     = array_sum(array_column($rows, 'periods_per_week'));

/* ─── Also flag classes where this teacher is the CLASS TEACHER (from sms_classes) ─── */
$ctStmt = $pdo->prepare("
    SELECT class_id FROM sms_classes
    WHERE class_teacher_id = ? AND school_id = ? AND status = 'ACTIVE'
");
$ctStmt->execute([$teacherId, $_SESSION['school_id']]);
$classTeacherOf = array_column($ctStmt->fetchAll(PDO::FETCH_ASSOC), 'class_id');

include("includes/header.php");
?>

<!-- ── TOP BAR ── -->
<div class="page-topbar">
    <img
        src="<?= htmlspecialchars($photo) ?>"
        alt="Profile"
        style="width:52px;height:52px;border-radius:50%;object-fit:cover;
               border:2px solid rgba(56,189,248,.4);flex-shrink:0;"
    >
    <div>
        <h1>My Subjects</h1>
        <p>Subjects and classes allocated to you,
            <strong style="color:#e0f2fe;"><?= htmlspecialchars($teacherName) ?></strong>
        </p>
    </div>
</div>

<!-- ── PAGE BODY ── -->
<div class="page-body">

    <!-- STAT CARDS -->
    <div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:24px;">

        <div class="stat-card">
            <div class="stat-icon" style="background:rgba(250,204,21,.1);">🏫</div>
            <div>
                <p style="font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#ffffff;margin:0;">Classes I Teach</p>
                <p style="font-size:32px;font-weight:800;color:#e2e8f0;margin:2px 0 0;line-height:1;"><?= $totalClassesTeaching ?></p>
            </div>
        </div>

        <div class="stat-card">
            <div class="stat-icon" style="background:rgba(14,165,233,.15);">📚</div>
            <div>
                <p style="font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#ffffff;margin:0;">Subject Allocations</p>
                <p style="font-size:32px;font-weight:800;color:#e2e8f0;margin:2px 0 0;line-height:1;"><?= $totalSubjectSlots ?></p>
            </div>
        </div>

        <div class="stat-card">
            <div class="stat-icon" style="background:rgba(168,85,247,.1);">🗓️</div>
            <div>
                <p style="font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#ffffff;margin:0;">Periods / Week</p>
                <p style="font-size:32px;font-weight:800;color:#e2e8f0;margin:2px 0 0;line-height:1;"><?= $totalPeriodsWeek ?></p>
            </div>
        </div>

    </div>

    <!-- SUBJECTS BY CLASS -->
    <div style="border-radius:18px;overflow:hidden;border:1.5px solid rgba(51,65,85,.8);">

        <div style="background:linear-gradient(135deg, #0f172a, #1e3a5f);padding:18px 24px;">
            <h2 style="font-size:16px;font-weight:700;color:#fff;margin:0;">📚 My Subject Allocation</h2>
            <p style="font-size:12px;color:#94a3b8;margin:3px 0 0;">Based on your timetable allocation across classes</p>
        </div>

        <div style="background:rgba(17,24,39,.88);padding:16px;">

            <?php if (empty($byClass)): ?>
                <p style="color:#94a3b8;font-size:14px;text-align:center;padding:30px 0;">
                    No subject allocations found yet. Once the school office adds you to the timetable, your subjects will appear here.
                </p>
            <?php else: ?>
                <div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;">
                    <?php foreach ($byClass as $cid => $cls): ?>
                        <div style="background:rgba(30,41,59,.6);border:1px solid rgba(51,65,85,.7);border-radius:14px;padding:18px;">

                            <div style="display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;">
                                <h3 style="font-size:15px;font-weight:700;color:#e2e8f0;margin:0;">
                                    🏫 <?= htmlspecialchars($cls['class_name']) ?><?= $cls['section'] ? ' - ' . htmlspecialchars($cls['section']) : '' ?>
                                </h3>
                                <?php if (in_array($cid, $classTeacherOf)): ?>
                                    <span style="font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
                                                 background:rgba(34,197,94,.15);color:#4ade80;padding:3px 9px;border-radius:20px;">
                                        Class Teacher
                                    </span>
                                <?php endif; ?>
                            </div>

                            <div style="display:flex;flex-direction:column;gap:8px;">
                                <?php foreach ($cls['subjects'] as $subj): ?>
                                    <div style="display:flex;align-items:center;justify-content:space-between;
                                                background:rgba(15,23,42,.6);border:1px solid rgba(51,65,85,.5);
                                                border-radius:10px;padding:10px 12px;">
                                        <div>
                                            <p style="font-size:13.5px;font-weight:600;color:#e2e8f0;margin:0;">
                                                <?= htmlspecialchars($subj['subject_name']) ?>
                                            </p>
                                            <?php if (!empty($subj['subject_code'])): ?>
                                                <p style="font-size:11px;color:#64748b;margin:2px 0 0;">
                                                    Code: <?= htmlspecialchars($subj['subject_code']) ?>
                                                </p>
                                            <?php endif; ?>
                                        </div>
                                        <span style="font-size:11px;font-weight:700;color:#38bdf8;background:rgba(14,165,233,.12);
                                                     padding:4px 10px;border-radius:20px;white-space:nowrap;">
                                            <?= $subj['periods_per_week'] ?> pd/wk
                                        </span>
                                    </div>
                                <?php endforeach; ?>
                            </div>

                            <div style="display:flex;gap:8px;margin-top:14px;">
                                <a href="timetable.php?class_id=<?= $cid ?>"
                                   style="flex:1;text-align:center;background:rgba(14,165,233,.15);color:#38bdf8;padding:8px;border-radius:8px;font-size:12px;font-weight:600;text-decoration:none;">
                                    🗓️ Timetable
                                </a>
                                <a href="students.php?class_id=<?= $cid ?>"
                                   style="flex:1;text-align:center;background:rgba(168,85,247,.15);color:#c084fc;padding:8px;border-radius:8px;font-size:12px;font-weight:600;text-decoration:none;">
                                    🧑‍🎓 Students
                                </a>
                            </div>

                        </div>
                    <?php endforeach; ?>
                </div>
            <?php endif; ?>

        </div>
    </div>

</div><!-- /.page-body -->

<?php include("includes/footer.php"); ?>
