<?php
// Enable error reporting for debugging 
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', '../logs/php_errors.log');

require_once '../includes/db_connect.php';

// Check session - role should be 'student'
if (!isset($_SESSION['user_id']) || $_SESSION['role'] != 'student') {
    error_log("Unauthorized access attempt to student_dashboard.php. Session: " . print_r($_SESSION, true));
    header("Location: ../login.php");
    exit;
}

// Fetch student details
$student_name = 'Student';
$student_class = 'Not Assigned';
$student_status = 'Pending';
$student_photo = '';

try {
    $stmt = $pdo->prepare("SELECT full_name, class_id, status, image_path FROM applicants WHERE id = ?");
    $stmt->execute([$_SESSION['user_id']]);
    $student = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($student) {
        $student_name = $student['full_name'];
        $student_status = ucfirst($student['status']);
        $student_photo = $student['image_path'];
        
        // Get class name if assigned
        if ($student['class_id']) {
            $stmt = $pdo->prepare("SELECT class_name FROM classes WHERE id = ?");
            $stmt->execute([$student['class_id']]);
            $class = $stmt->fetch(PDO::FETCH_ASSOC);
            if ($class) {
                $student_class = $class['class_name'];
            }
        }
    }
} catch (PDOException $e) {
    error_log("Error fetching student details: " . $e->getMessage());
}

// Get active exams and results
$active_exams = [];
$exam_results = [];
$upcoming_exams = [];

try {
    // Get active exams for student's class
    if (!empty($student['class_id'])) {
        // Get exams assigned to student's class that are active
        $stmt = $pdo->prepare("
            SELECT e.id, e.exam_name, e.exam_date, e.duration_minutes, 
                   GROUP_CONCAT(DISTINCT s.name SEPARATOR ', ') as subjects
            FROM exams e
            JOIN exam_classes ec ON e.id = ec.exam_id
            JOIN exam_subjects es ON e.id = es.exam_id
            JOIN subjects s ON es.subject_id = s.id
            WHERE ec.class_id = ? AND e.is_active = 1 AND e.exam_date >= CURDATE()
            GROUP BY e.id
            ORDER BY e.exam_date ASC
        ");
        $stmt->execute([$student['class_id']]);
        $active_exams = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        // Get upcoming exams (next 7 days)
        $stmt = $pdo->prepare("
            SELECT e.id, e.exam_name, e.exam_date, e.duration_minutes
            FROM exams e
            JOIN exam_classes ec ON e.id = ec.exam_id
            WHERE ec.class_id = ? AND e.is_active = 1 
            AND e.exam_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)
            ORDER BY e.exam_date ASC
        ");
        $stmt->execute([$student['class_id']]);
        $upcoming_exams = $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
    
    // Get exam results (limit to 3 most recent)
    $stmt = $pdo->prepare("
        SELECT r.id, r.exam_id, e.exam_name, r.subject_id, s.name as subject_name, 
               r.score, r.total_questions, r.completed_at
        FROM cbt_results r
        JOIN exams e ON r.exam_id = e.id
        JOIN subjects s ON r.subject_id = s.id
        WHERE r.student_id = ?
        ORDER BY r.completed_at DESC
        LIMIT 3
    ");
    $stmt->execute([$_SESSION['user_id']]);
    $exam_results = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Check if student has any exams in progress
    $stmt = $pdo->prepare("
        SELECT exam_id, time_remaining, status 
        FROM student_exams 
        WHERE student_id = ? AND status = 'in_progress'
        LIMIT 1
    ");
    $stmt->execute([$_SESSION['user_id']]);
    $in_progress_exam = $stmt->fetch(PDO::FETCH_ASSOC);
    
} catch (PDOException $e) {
    error_log("Error fetching exam data: " . $e->getMessage());
    $error_message = "Error loading exam information. Please try again later.";
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Student Dashboard - Verbum Dei Academy & College</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">
    <style>
        :root {
            --primary: #1a73e8;
            --primary-light: #e8f0fe;
            --primary-lighter: #f5f9ff;
            --secondary: #5f6368;
            --success: #34a853;
            --warning: #f9ab00;
            --danger: #d93025;
            --light: #f8f9fa;
            --dark: #202124;
        }
        
        body {
            background-color: var(--primary-lighter);
            font-family: 'Google Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
        }
        
        .dashboard-header {
            background: white;
            border-radius: 15px;
            padding: 1.5rem;
            margin-bottom: 2rem;
            box-shadow: 0 0.15rem 1.75rem 0 rgba(66, 133, 244, 0.1);
            border-left: 5px solid var(--primary);
        }
        
        .stat-card {
            border-radius: 15px;
            border: none;
            box-shadow: 0 0.15rem 1.75rem 0 rgba(66, 133, 244, 0.1);
            transition: all 0.3s;
            overflow: hidden;
            border-left: 4px solid var(--primary);
        }
        
        .stat-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 0.5rem 1.5rem 0 rgba(66, 133, 244, 0.2);
        }
        
        .stat-card .card-icon {
            font-size: 2rem;
            opacity: 0.3;
            position: absolute;
            right: 20px;
            top: 20px;
            color: var(--primary);
        }
        
        .stat-card.bg-primary {
            background: linear-gradient(135deg, var(--primary-light) 0%, white 100%) !important;
            color: var(--dark);
        }
        
        .stat-card.bg-success {
            background: linear-gradient(135deg, #e6f4ea 0%, white 100%) !important;
            color: var(--dark);
            border-left-color: var(--success);
        }
        
        .stat-card.bg-warning {
            background: linear-gradient(135deg, #fef7e0 0%, white 100%) !important;
            color: var(--dark);
            border-left-color: var(--warning);
        }
        
        .stat-card.bg-info {
            background: linear-gradient(135deg, #e8f0fe 0%, white 100%) !important;
            color: var(--dark);
            border-left-color: var(--primary);
        }
        
        .exam-card {
            border-radius: 15px;
            border: none;
            box-shadow: 0 0.15rem 1.75rem 0 rgba(66, 133, 244, 0.1);
            transition: all 0.3s;
            height: 100%;
            border-top: 3px solid var(--primary);
        }
        
        .exam-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 0.5rem 1.5rem 0 rgba(66, 133, 244, 0.2);
        }
        
        .exam-card .btn {
            border-radius: 50px;
            padding: 0.5rem 1.5rem;
            font-weight: 500;
        }
        
        .section-title {
            position: relative;
            padding-bottom: 10px;
            margin-bottom: 2rem;
            color: var(--primary);
        }
        
        .section-title:after {
            content: "";
            position: absolute;
            left: 0;
            bottom: 0;
            width: 50px;
            height: 3px;
            background: var(--primary);
        }
        
        .navbar {
            background: white;
            box-shadow: 0 0.15rem 1.75rem 0 rgba(66, 133, 244, 0.15);
            border-radius: 15px;
            padding: 1rem;
        }
        
        .user-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: var(--primary);
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            overflow: hidden;
        }
        
        .user-avatar img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        
        .badge-primary {
            background-color: var(--primary-light);
            color: var(--primary);
            font-weight: 500;
        }
        
        .progress {
            height: 8px;
            border-radius: 4px;
        }
        
        .progress-bar {
            background-color: var(--primary);
        }
        
        .activity-item {
            border-left: 3px solid var(--primary);
            padding-left: 15px;
            margin-bottom: 20px;
        }
        
        .activity-item:last-child {
            margin-bottom: 0;
        }
        
        .activity-time {
            font-size: 0.8rem;
            color: var(--secondary);
        }
        
        .exam-badge {
            font-size: 0.75rem;
            font-weight: 500;
            padding: 0.25rem 0.5rem;
        }
        
        .exam-date-badge {
            background-color: var(--primary-light);
            color: var(--primary);
            font-size: 0.8rem;
            padding: 0.3rem 0.6rem;
            border-radius: 50px;
        }
    </style>
</head>
<body>
    <!-- Top Navigation Bar -->
    <nav class="navbar navbar-expand-lg mb-4">
        <div class="container-fluid">
            <a class="navbar-brand fw-bold text-primary" href="#">
                <i class="bi bi-mortarboard me-2"></i>Verbum Dei Academy & College
            </a>
            <div class="d-flex align-items-center">
                <div class="me-3">
                    <span class="text-muted">Welcome,</span>
                    <span class="fw-bold ms-1"><?php echo htmlspecialchars($student_name); ?></span>
                </div>
                <div class="user-avatar me-2">
                    <?php if (!empty($student_photo)): ?>
                        <img src="./<?php echo htmlspecialchars($student_photo); ?>" alt="Profile Photo">
                    <?php else: ?>
                        <?php echo strtoupper(substr($student_name, 0, 1)); ?>
                    <?php endif; ?>
                </div>
                <a href="../logout.php" class="btn btn-sm btn-outline-danger">
                    <i class="bi bi-box-arrow-right"></i>
                </a>
            </div>
        </div>
    </nav>

    <div class="container-fluid">
        <!-- Dashboard Header -->
        <div class="dashboard-header animate__animated animate__fadeIn">
            <div class="row align-items-center">
                <div class="col-md-6">
                    <h1 class="h3 fw-bold text-primary mb-0">Student Dashboard</h1>
                    <p class="mb-0 text-muted">Welcome to your examination portal</p>
                </div>
                <div class="col-md-6 text-md-end">
                    <span class="badge badge-primary">
                        <i class="bi bi-calendar me-1"></i> <?php echo date('l, F j, Y'); ?>
                    </span>
                    <span class="badge bg-light text-dark ms-2">
                        <i class="bi bi-clock me-1"></i> <span id="liveTime"></span>
                    </span>
                </div>
            </div>
        </div>
        
        <?php if (isset($error_message)): ?>
            <div class="alert alert-danger animate__animated animate__shakeX mb-4"><?php echo htmlspecialchars($error_message); ?></div>
        <?php endif; ?>
        
        <?php if (isset($in_progress_exam)): ?>
            <div class="alert alert-warning animate__animated animate__fadeIn mb-4">
                <div class="d-flex justify-content-between align-items-center">
                    <div>
                        <i class="bi bi-exclamation-triangle-fill me-2"></i>
                        You have an exam in progress. Would you like to continue?
                    </div>
                    <a href="take_exam.php?exam_id=<?php echo $in_progress_exam['exam_id']; ?>" class="btn btn-sm btn-warning">
                        Continue Exam
                    </a>
                </div>
            </div>
        <?php endif; ?>
        
        <!-- Stats Cards -->
        <div class="row g-4 mb-4">
            <div class="col-xl-3 col-md-6">
                <div class="stat-card card bg-primary animate__animated animate__fadeInUp">
                    <div class="card-body">
                        <i class="bi bi-journal-text card-icon"></i>
                        <h5 class="card-title text-uppercase mb-2">Available Exams</h5>
                        <h2 class="mb-0 fw-bold"><?php echo count($active_exams); ?></h2>
                        <a href="exams.php" class="text-primary small mt-2 d-block fw-bold">View all exams <i class="bi bi-arrow-right"></i></a>
                    </div>
                </div>
            </div>
            
            <div class="col-xl-3 col-md-6">
                <div class="stat-card card bg-success animate__animated animate__fadeInUp animate__delay-1s">
                    <div class="card-body">
                        <i class="bi bi-check-circle card-icon"></i>
                        <h5 class="card-title text-uppercase mb-2">Completed Exams</h5>
                        <h2 class="mb-0 fw-bold"><?php echo count($exam_results); ?></h2>
                        <a href="results.php" class="text-success small mt-2 d-block fw-bold">View results <i class="bi bi-arrow-right"></i></a>
                    </div>
                </div>
            </div>
            
            <div class="col-xl-3 col-md-6">
                <div class="stat-card card bg-warning animate__animated animate__fadeInUp animate__delay-2s">
                    <div class="card-body">
                        <i class="bi bi-calendar-event card-icon"></i>
                        <h5 class="card-title text-uppercase mb-2">Upcoming Exams</h5>
                        <h2 class="mb-0 fw-bold"><?php echo count($upcoming_exams); ?></h2>
                        <a href="schedule.php" class="text-warning small mt-2 d-block fw-bold">View schedule <i class="bi bi-arrow-right"></i></a>
                    </div>
                </div>
            </div>
            
            <div class="col-xl-3 col-md-6">
                <div class="stat-card card bg-info animate__animated animate__fadeInUp animate__delay-3s">
                    <div class="card-body">
                        <i class="bi bi-person-badge card-icon"></i>
                        <h5 class="card-title text-uppercase mb-2">Your Status</h5>
                        <h2 class="mb-0 fw-bold"><?php echo htmlspecialchars($student_status); ?></h2>
                        <a href="profile.php" class="text-primary small mt-2 d-block fw-bold">View profile <i class="bi bi-arrow-right"></i></a>
                    </div>
                </div>
            </div>
        </div>
        
        <!-- Active Exams Section -->
        <div class="row mb-4">
            <div class="col-12">
                <h3 class="section-title">Available Examinations</h3>
            </div>
            
            <?php if (empty($active_exams)): ?>
                <div class="col-12">
                    <div class="alert alert-info animate__animated animate__fadeIn">
                        <i class="bi bi-info-circle me-2"></i> There are currently no examinations available for your class.
                    </div>
                </div>
            <?php else: ?>
                <?php foreach ($active_exams as $exam): ?>
                    <div class="col-xl-4 col-md-6 mb-4">
                        <div class="exam-card card h-100 animate__animated animate__fadeIn">
                            <div class="card-body">
                                <div class="d-flex justify-content-between align-items-start mb-3">
                                    <h5 class="card-title mb-0"><?php echo htmlspecialchars($exam['exam_name']); ?></h5>
                                    <span class="badge bg-success exam-badge">Available</span>
                                </div>
                                
                                <div class="d-flex align-items-center mb-2">
                                    <span class="exam-date-badge me-2">
                                        <i class="bi bi-calendar me-1"></i> 
                                        <?php echo date('M j, Y', strtotime($exam['exam_date'])); ?>
                                    </span>
                                    <span class="exam-date-badge">
                                        <i class="bi bi-clock me-1"></i> 
                                        <?php echo floor($exam['duration_minutes'] / 60); ?>h <?php echo $exam['duration_minutes'] % 60; ?>m
                                    </span>
                                </div>
                                
                                <?php if (!empty($exam['subjects'])): ?>
                                    <p class="card-text small mb-3">
                                        <i class="bi bi-book me-1"></i> 
                                        <strong>Subjects:</strong> <?php echo htmlspecialchars($exam['subjects']); ?>
                                    </p>
                                <?php endif; ?>
                                
                                <div class="d-grid">
                                    <a href="exam_details.php?exam_id=<?php echo $exam['id']; ?>" class="btn btn-primary">
                                        <i class="bi bi-eye me-1"></i> View Details
                                    </a>
                                </div>
                            </div>
                        </div>
                    </div>
                <?php endforeach; ?>
            <?php endif; ?>
        </div>
        
        <!-- Results and Upcoming Exams Section -->
        <div class="row">
            <div class="col-lg-6 mb-4">
                <div class="card h-100 animate__animated animate__fadeIn">
                    <div class="card-body">
                        <h3 class="section-title">Recent Results</h3>
                        
                        <?php if (empty($exam_results)): ?>
                            <div class="alert alert-info">
                                <i class="bi bi-info-circle me-2"></i> You haven't completed any exams yet.
                            </div>
                        <?php else: ?>
                            <div class="table-responsive">
                                <table class="table table-hover">
                                    <thead>
                                        <tr>
                                            <th>Exam</th>
                                            <th>Subject</th>
                                            <th>Score</th>
                                            <th>Date</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <?php foreach ($exam_results as $result): ?>
                                            <tr>
                                                <td><?php echo htmlspecialchars($result['exam_name']); ?></td>
                                                <td><?php echo htmlspecialchars($result['subject_name']); ?></td>
                                                <td>
                                                    <?php 
                                                        $percentage = ($result['score'] / $result['total_questions']) * 100;
                                                        echo htmlspecialchars($result['score']) . '/' . htmlspecialchars($result['total_questions']) . 
                                                             ' (' . round($percentage) . '%)';
                                                    ?>
                                                </td>
                                                <td><?php echo date('M j', strtotime($result['completed_at'])); ?></td>
                                            </tr>
                                        <?php endforeach; ?>
                                    </tbody>
                                </table>
                            </div>
                            <div class="text-end mt-2">
                                <a href="results.php" class="btn btn-sm btn-primary">View All Results</a>
                            </div>
                        <?php endif; ?>
                    </div>
                </div>
            </div>
            
            <div class="col-lg-6 mb-4">
                <div class="card h-100 animate__animated animate__fadeIn animate__delay-1s">
                    <div class="card-body">
                        <h3 class="section-title">Upcoming Examinations</h3>
                        
                        <?php if (empty($upcoming_exams)): ?>
                            <div class="alert alert-info">
                                <i class="bi bi-info-circle me-2"></i> No upcoming examinations scheduled.
                            </div>
                        <?php else: ?>
                            <div class="list-group">
                                <?php foreach ($upcoming_exams as $exam): ?>
                                    <div class="list-group-item border-0 px-0 py-3">
                                        <div class="d-flex justify-content-between align-items-center">
                                            <div>
                                                <h6 class="mb-1"><?php echo htmlspecialchars($exam['exam_name']); ?></h6>
                                                <small class="text-muted">
                                                    <i class="bi bi-calendar me-1"></i>
                                                    <?php echo date('M j, Y', strtotime($exam['exam_date'])); ?>
                                                    &middot; 
                                                    <i class="bi bi-clock me-1"></i>
                                                    <?php echo floor($exam['duration_minutes'] / 60); ?>h <?php echo $exam['duration_minutes'] % 60; ?>m
                                                </small>
                                            </div>
                                            <span class="badge bg-warning text-dark">Upcoming</span>
                                        </div>
                                    </div>
                                <?php endforeach; ?>
                            </div>
                            <div class="text-end mt-2">
                                <a href="schedule.php" class="btn btn-sm btn-primary">View Full Schedule</a>
                            </div>
                        <?php endif; ?>
                    </div>
                </div>
            </div>
        </div>
        
        <!-- Profile and Activity Section -->
        <div class="row">
            <div class="col-lg-6 mb-4">
                <div class="card h-100 animate__animated animate__fadeIn">
                    <div class="card-body">
                        <h3 class="section-title">Your Profile</h3>
                        <div class="d-flex align-items-center mb-4">
                            <div class="user-avatar me-3" style="width: 60px; height: 60px;">
                                <?php if (!empty($student_photo)): ?>
                                    <img src="./<?php echo htmlspecialchars($student_photo); ?>" alt="Profile Photo">
                                <?php else: ?>
                                    <?php echo strtoupper(substr($student_name, 0, 1)); ?>
                                <?php endif; ?>
                            </div>
                            <div>
                                <h5 class="mb-1"><?php echo htmlspecialchars($student_name); ?></h5>
                                <p class="mb-1 text-muted small">
                                    <i class="bi bi-journal-text me-1"></i> <?php echo htmlspecialchars($student_class); ?>
                                </p>
                                <p class="mb-0 text-muted small">
                                    <i class="bi bi-check-circle me-1"></i> Status: <?php echo htmlspecialchars($student_status); ?>
                                </p>
                            </div>
                        </div>
                        <div class="progress mb-3">
                            <div class="progress-bar" role="progressbar" style="width: <?php echo ($student_status == 'Active') ? '100%' : '30%'; ?>" 
                                 aria-valuenow="<?php echo ($student_status == 'Active') ? '100' : '30'; ?>" aria-valuemin="0" aria-valuemax="100"></div>
                        </div>
                        <div class="d-grid">
                            <a href="profile.php" class="btn btn-outline-primary">
                                <i class="bi bi-pencil me-1"></i> Edit Profile
                            </a>
                        </div>
                    </div>
                </div>
            </div>
            
            <div class="col-lg-6 mb-4">
                <div class="card h-100 animate__animated animate__fadeIn animate__delay-1s">
                    <div class="card-body">
                        <h3 class="section-title">Recent Activity</h3>
                        
                        <div class="activity-item">
                            <h6 class="mb-1">Logged in to the system</h6>
                            <small class="activity-time">Today at <?php echo date('g:i a'); ?></small>
                        </div>
                        
                        <?php if (!empty($exam_results)): ?>
                            <div class="activity-item">
                                <h6 class="mb-1">Completed <?php echo htmlspecialchars($exam_results[0]['exam_name']); ?> exam</h6>
                                <small class="activity-time">
                                    <?php echo date('M j, Y', strtotime($exam_results[0]['completed_at'])); ?> at 
                                    <?php echo date('g:i a', strtotime($exam_results[0]['completed_at'])); ?>
                                </small>
                            </div>
                        <?php endif; ?>
                        
                        <?php if (!empty($active_exams)): ?>
                            <div class="activity-item">
                                <h6 class="mb-1">New exam available: <?php echo htmlspecialchars($active_exams[0]['exam_name']); ?></h6>
                                <small class="activity-time">Recently added</small>
                            </div>
                        <?php endif; ?>
                        
                        <div class="text-end mt-3">
                            <a href="activity.php" class="btn btn-sm btn-outline-primary">View All Activity</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            // Update live time
            function updateTime() {
                const now = new Date();
                const timeString = now.toLocaleTimeString('en-US', {hour: '2-digit', minute:'2-digit'});
                document.getElementById('liveTime').textContent = timeString;
            }
            updateTime();
            setInterval(updateTime, 60000);
            
            // Add animation to cards on scroll
            const observer = new IntersectionObserver((entries) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        entry.target.classList.add('animate__fadeIn');
                    }
                });
            }, {threshold: 0.1});
            
            document.querySelectorAll('.card').forEach(card => {
                observer.observe(card);
            });
        });
    </script>
</body>
</html>