<?php
require_once('login_connection.php'); // Must define $conn or $pdo here

$pdo = new PDO("mysql:host=localhost;dbname=luziraco_LUZIRA", "luziraco_Staff", "Luzira@2025");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Handle subject update/insert
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
    header('Content-Type: application/json');

    $action = $_POST['action'];
    $student_id = $_POST['student_id'] ?? '';
    $term = $_POST['term'] ?? '';
    $subject = $_POST['subject'] ?? '';
    $score = $_POST['score'] ?? '';
    $user = 'System'; // No login; default recorded_by

    if ($action === 'insert_midterm_subject') {
        $table = 'MIDTERM_LOWER';
    } elseif ($action === 'insert_eot_subject') {
        $table = 'EOT_LOWER';
    } else {
        echo json_encode(["status" => "error", "message" => "Invalid action"]);
        exit;
    }

    try {
        $check = $pdo->prepare("SELECT * FROM $table WHERE STUDENT_ID = ? AND TERM = ?");
        $check->execute([$student_id, $term]);

        if ($check->rowCount() > 0) {
            $update = $pdo->prepare("UPDATE $table SET $subject = ? WHERE STUDENT_ID = ? AND TERM = ?");
            $update->execute([$score, $student_id, $term]);
            echo json_encode(["status" => "success", "message" => "$subject updated in $table"]);
        } else {
            $insert = $pdo->prepare("INSERT INTO $table (STUDENT_ID, TERM, $subject, RECORDED_BY) VALUES (?, ?, ?, ?)");
            $insert->execute([$student_id, $term, $score, $user]);
            echo json_encode(["status" => "success", "message" => "$subject inserted in $table"]);
        }
    } catch (Exception $e) {
        echo json_encode(["status" => "error", "message" => $e->getMessage()]);
    }
    exit;
}

// Load students by class
if (isset($_GET['get_students']) && $_GET['get_students'] == 1 && isset($_GET['class'])) {
    $stmt = $pdo->prepare("SELECT STUDENT_ID, STUDENT_NAME FROM STUDENTS WHERE CLASS = ? ORDER BY STUDENT_NAME ASC");
    $stmt->execute([$_GET['class']]);
    echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
    exit;
}

// Load distinct classes
$classes = $pdo->query("SELECT DISTINCT CLASS FROM STUDENTS ORDER BY CLASS ASC")->fetchAll(PDO::FETCH_COLUMN);
?>
<!DOCTYPE html>
<html>
<head>
    <title>Teacher Panel</title>
    <style>
        body { font-family: Arial; padding: 20px; background: #f4f4f4; }
        h2 { background: #007BFF; color: white; padding: 10px; border-radius: 5px; text-align: center; }
        .container { display: flex; gap: 20px; flex-wrap: wrap; }
        .column { flex: 1 1 45%; background: #fff; padding: 15px; border-radius: 10px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
        form { display: flex; flex-direction: column; gap: 10px; }
        input, select, button { padding: 8px; }
        footer { text-align: center; margin-top: 30px; background: #007BFF; color: white; padding: 10px; border-radius: 5px; }
    </style>
</head>
<body>

<h2>LUZIRA CoU PS - Results Entry</h2>

<div class="container">
    <div class="column">
        <h3>Midterm Subject Entry</h3>
        <form id="midtermForm">
            <select id="midterm-class" required>
                <option value="">-- Select Class --</option>
                <?php foreach ($classes as $class): ?>
                    <option value="<?= htmlspecialchars($class) ?>"><?= htmlspecialchars($class) ?></option>
                <?php endforeach; ?>
            </select>
            <select name="student_id" id="midterm-student" required>
                <option value="">-- Select Student --</option>
            </select>
            <select name="term" required>
                <option value="TERM 1">TERM 1</option>
                <option value="TERM 2">TERM 2</option>
                <option value="TERM 3">TERM 3</option>
            </select>
            <select name="subject" required>
                <option value="MTC">Mathematics</option>
                <option value="ENG">English</option>
                <option value="LIT1">Literacy I</option>
                <option value="LIT2">Literacy II</option>
                <option value="RE">RE</option>
            </select>
            <input type="number" name="score" required placeholder="Enter score">
            <input type="hidden" name="action" value="insert_midterm_subject">
            <button type="submit">Save Midterm</button>
        </form>
        <div id="midtermMsg"></div>
    </div>

    <div class="column">
        <h3>End of Term Subject Entry</h3>
        <form id="eotForm">
            <select id="eot-class" required>
                <option value="">-- Select Class --</option>
                <?php foreach ($classes as $class): ?>
                    <option value="<?= htmlspecialchars($class) ?>"><?= htmlspecialchars($class) ?></option>
                <?php endforeach; ?>
            </select>
            <select name="student_id" id="eot-student" required>
                <option value="">-- Select Student --</option>
            </select>
            <select name="term" required>
                <option value="TERM 1">TERM 1</option>
                <option value="TERM 2">TERM 2</option>
                <option value="TERM 3">TERM 3</option>
            </select>
            <select name="subject" required>
                <option value="MTC">Mathematics</option>
                <option value="ENG">English</option>
                <option value="LIT1">Literacy I</option>
                <option value="LIT2">Literacy II</option>
                <option value="RE">RE</option>
            </select>
            <input type="number" name="score" required placeholder="Enter score">
            <input type="hidden" name="action" value="insert_eot_subject">
            <button type="submit">Save EOT</button>
        </form>
        <div id="eotMsg"></div>
    </div>
</div>

<footer>&copy; <?= date('Y') ?> Luzira COU Primary School</footer>

<script>
function fetchStudents(classId, studentId) {
    const classValue = document.getElementById(classId).value;
    const dropdown = document.getElementById(studentId);
    dropdown.innerHTML = '<option>Loading...</option>';

    fetch(`?get_students=1&class=${encodeURIComponent(classValue)}`)
        .then(res => res.json())
        .then(data => {
            dropdown.innerHTML = '<option value="">-- Select Student --</option>';
            data.forEach(s => {
                const opt = document.createElement('option');
                opt.value = s.STUDENT_ID;
                opt.textContent = s.STUDENT_NAME;
                dropdown.appendChild(opt);
            });
        });
}

// Bind class change
document.getElementById('midterm-class').addEventListener('change', () => fetchStudents('midterm-class', 'midterm-student'));
document.getElementById('eot-class').addEventListener('change', () => fetchStudents('eot-class', 'eot-student'));

// Handle form submission
['midtermForm', 'eotForm'].forEach(formId => {
    document.getElementById(formId).addEventListener('submit', function(e) {
        e.preventDefault();
        const formData = new FormData(this);
        const classValue = document.getElementById(formId === 'midtermForm' ? 'midterm-class' : 'eot-class').value;
        formData.append('class', classValue);
        fetch("", {
            method: "POST",
            body: formData
        })
        .then(res => res.json())
        .then(res => {
            const msgId = formId === 'midtermForm' ? 'midtermMsg' : 'eotMsg';
            const msgBox = document.getElementById(msgId);
            msgBox.textContent = res.message;
            msgBox.style.color = res.status === 'success' ? 'green' : 'red';
            this.reset();
        });
    });
});
</script>
</body>
</html>
