<?php
session_start();
require_once 'config/database.php';

// Check if user is admin
if (!isset($_SESSION['user_id']) || $_SESSION['user_role'] !== 'admin') {
    header('Location: login.php');
    exit();
}

echo "<!DOCTYPE html>
<html lang='bn'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>পরীক্ষা সিস্টেম আপডেট</title>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css' rel='stylesheet'>
    <link href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css' rel='stylesheet'>
</head>
<body class='bg-light'>
    <div class='container mt-5'>
        <div class='row justify-content-center'>
            <div class='col-md-8'>
                <div class='card'>
                    <div class='card-header bg-primary text-white'>
                        <h4><i class='fas fa-database'></i> পরীক্ষা সিস্টেম ডাটাবেস আপডেট</h4>
                    </div>
                    <div class='card-body'>";

try {
    echo "<h5><i class='fas fa-cog'></i> পরীক্ষা সিস্টেম টেবিল আপডেট করা হচ্ছে...</h5>";
    
    // Add session and group fields to exams table
    try {
        $pdo->exec("ALTER TABLE exams ADD COLUMN session VARCHAR(20) AFTER class_id");
        echo "<p class='text-success'><i class='fas fa-check'></i> Exams টেবিলে Session ফিল্ড যোগ করা হয়েছে</p>";
    } catch (Exception $e) {
        if (strpos($e->getMessage(), 'Duplicate column name') !== false) {
            echo "<p class='text-info'><i class='fas fa-info'></i> Exams টেবিলে Session ফিল্ড ইতিমধ্যে বিদ্যমান</p>";
        } else {
            throw $e;
        }
    }
    
    try {
        $pdo->exec("ALTER TABLE exams ADD COLUMN group_name VARCHAR(50) AFTER session");
        echo "<p class='text-success'><i class='fas fa-check'></i> Exams টেবিলে Group ফিল্ড যোগ করা হয়েছে</p>";
    } catch (Exception $e) {
        if (strpos($e->getMessage(), 'Duplicate column name') !== false) {
            echo "<p class='text-info'><i class='fas fa-info'></i> Exams টেবিলে Group ফিল্ড ইতিমধ্যে বিদ্যমান</p>";
        } else {
            throw $e;
        }
    }
    
    // Create exam attendance table
    echo "<hr>";
    echo "<h5><i class='fas fa-clipboard-check'></i> পরীক্ষার হাজিরা টেবিল তৈরি:</h5>";
    
    $pdo->exec("
        CREATE TABLE IF NOT EXISTS exam_attendance (
            id INT AUTO_INCREMENT PRIMARY KEY,
            exam_id INT NOT NULL,
            subject_id INT NOT NULL,
            student_id INT NOT NULL,
            attendance_status ENUM('present', 'absent', 'late') DEFAULT 'present',
            exam_date DATE NOT NULL,
            remarks TEXT,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
            FOREIGN KEY (exam_id) REFERENCES exams(id) ON DELETE CASCADE,
            FOREIGN KEY (subject_id) REFERENCES subjects(id) ON DELETE CASCADE,
            FOREIGN KEY (student_id) REFERENCES students(id) ON DELETE CASCADE,
            UNIQUE KEY unique_exam_subject_student (exam_id, subject_id, student_id)
        )
    ");
    echo "<p class='text-success'><i class='fas fa-check'></i> Exam Attendance টেবিল তৈরি</p>";
    
    // Create seat arrangement table
    echo "<hr>";
    echo "<h5><i class='fas fa-chair'></i> সীট বিন্যাস টেবিল তৈরি:</h5>";
    
    $pdo->exec("
        CREATE TABLE IF NOT EXISTS seat_arrangements (
            id INT AUTO_INCREMENT PRIMARY KEY,
            exam_id INT NOT NULL,
            subject_id INT NOT NULL,
            student_id INT NOT NULL,
            room_number VARCHAR(50),
            seat_number VARCHAR(20),
            row_number INT,
            column_number INT,
            exam_date DATE NOT NULL,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
            FOREIGN KEY (exam_id) REFERENCES exams(id) ON DELETE CASCADE,
            FOREIGN KEY (subject_id) REFERENCES subjects(id) ON DELETE CASCADE,
            FOREIGN KEY (student_id) REFERENCES students(id) ON DELETE CASCADE,
            UNIQUE KEY unique_exam_subject_student_seat (exam_id, subject_id, student_id)
        )
    ");
    echo "<p class='text-success'><i class='fas fa-check'></i> Seat Arrangements টেবিল তৈরি</p>";
    
    // Update exam_subjects table
    echo "<hr>";
    echo "<h5><i class='fas fa-book'></i> পরীক্ষার বিষয় টেবিল আপডেট:</h5>";
    
    try {
        $pdo->exec("ALTER TABLE exam_subjects ADD COLUMN room_number VARCHAR(50) AFTER end_time");
        echo "<p class='text-success'><i class='fas fa-check'></i> Exam Subjects টেবিলে Room Number ফিল্ড যোগ করা হয়েছে</p>";
    } catch (Exception $e) {
        if (strpos($e->getMessage(), 'Duplicate column name') !== false) {
            echo "<p class='text-info'><i class='fas fa-info'></i> Exam Subjects টেবিলে Room Number ফিল্ড ইতিমধ্যে বিদ্যমান</p>";
        } else {
            throw $e;
        }
    }
    
    try {
        $pdo->exec("ALTER TABLE exam_subjects ADD COLUMN invigilator VARCHAR(100) AFTER room_number");
        echo "<p class='text-success'><i class='fas fa-check'></i> Exam Subjects টেবিলে Invigilator ফিল্ড যোগ করা হয়েছে</p>";
    } catch (Exception $e) {
        if (strpos($e->getMessage(), 'Duplicate column name') !== false) {
            echo "<p class='text-info'><i class='fas fa-info'></i> Exam Subjects টেবিলে Invigilator ফিল্ড ইতিমধ্যে বিদ্যমান</p>";
        } else {
            throw $e;
        }
    }
    
    echo "<hr>";
    echo "<div class='alert alert-success mt-4'>";
    echo "<h5><i class='fas fa-check-circle'></i> আপডেট সম্পন্ন!</h5>";
    echo "<p>এখন আপনি নিম্নলিখিত ফিচারগুলো ব্যবহার করতে পারবেন:</p>";
    echo "<ul>";
    echo "<li><strong>পরীক্ষার রুটিন:</strong> প্রিন্টেবল রুটিন তৈরি করুন</li>";
    echo "<li><strong>হাজিরা পত্র:</strong> পরীক্ষার জন্য শিক্ষার্থীদের হাজিরা পত্র</li>";
    echo "<li><strong>সীট কার্ড:</strong> শিক্ষার্থীদের সীট কার্ড প্রিন্ট করুন</li>";
    echo "<li><strong>সীট বিন্যাস:</strong> পরীক্ষার হলে সীট বিন্যাস করুন</li>";
    echo "</ul>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div class='alert alert-danger'>";
    echo "<h5><i class='fas fa-exclamation-triangle'></i> ত্রুটি!</h5>";
    echo "<p>ডাটাবেস আপডেট করতে সমস্যা হয়েছে: " . $e->getMessage() . "</p>";
    echo "</div>";
}

echo "                    </div>
                    <div class='card-footer'>
                        <a href='exams/routine.php' class='btn btn-primary'>
                            <i class='fas fa-calendar'></i> পরীক্ষার রুটিন
                        </a>
                        <a href='exams/attendance.php' class='btn btn-success'>
                            <i class='fas fa-clipboard-check'></i> হাজিরা পত্র
                        </a>
                        <a href='exams/seat_card.php' class='btn btn-info'>
                            <i class='fas fa-id-card'></i> সীট কার্ড
                        </a>
                        <a href='index.php' class='btn btn-secondary'>
                            <i class='fas fa-home'></i> হোমে ফিরুন
                        </a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";
?>