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

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

$message = '';
$error = '';
$preselected_class = isset($_GET['class_id']) ? (int)$_GET['class_id'] : 0;

// Handle form submission
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $class_id = isset($_POST['class_id']) ? (int)$_POST['class_id'] : 0;
    $confirm = isset($_POST['confirm']) ? $_POST['confirm'] : '';
    
    if ($class_id > 0 && $confirm === 'DELETE') {
        try {
            $pdo->beginTransaction();
            
            // Get class information
            $class_stmt = $pdo->prepare("SELECT name, section FROM classes WHERE id = ?");
            $class_stmt->execute([$class_id]);
            $class_info = $class_stmt->fetch();
            
            if (!$class_info) {
                throw new Exception('ক্লাস পাওয়া যায়নি।');
            }
            
            // Get students count before deletion
            $count_stmt = $pdo->prepare("SELECT COUNT(*) FROM students WHERE class_id = ? AND status = 'active'");
            $count_stmt->execute([$class_id]);
            $student_count = $count_stmt->fetchColumn();
            
            if ($student_count == 0) {
                throw new Exception('এই ক্লাসে কোন সক্রিয় ছাত্র-ছাত্রী নেই।');
            }
            
            // Get student IDs for cleanup
            $student_ids_stmt = $pdo->prepare("SELECT id, user_id FROM students WHERE class_id = ? AND status = 'active'");
            $student_ids_stmt->execute([$class_id]);
            $students_data = $student_ids_stmt->fetchAll();
            
            $student_ids = array_column($students_data, 'id');
            $user_ids = array_filter(array_column($students_data, 'user_id'));
            
            if (!empty($student_ids)) {
                $placeholders = str_repeat('?,', count($student_ids) - 1) . '?';
                
                // Delete related records first (to maintain referential integrity)
                
                // Delete student subjects
                $pdo->prepare("DELETE FROM student_subjects WHERE student_id IN ($placeholders)")->execute($student_ids);
                
                // Delete attendance records
                $pdo->prepare("DELETE FROM attendance WHERE student_id IN ($placeholders)")->execute($student_ids);
                
                // Delete exam results
                $pdo->prepare("DELETE FROM results WHERE student_id IN ($placeholders)")->execute($student_ids);
                
                // Delete fee records
                $pdo->prepare("DELETE FROM fees WHERE student_id IN ($placeholders)")->execute($student_ids);
                
                // Delete library issues
                $pdo->prepare("DELETE FROM library_issues WHERE student_id IN ($placeholders)")->execute($student_ids);
                
                // Delete students
                $pdo->prepare("DELETE FROM students WHERE id IN ($placeholders)")->execute($student_ids);
                
                // Delete associated user accounts if they exist
                if (!empty($user_ids)) {
                    $user_placeholders = str_repeat('?,', count($user_ids) - 1) . '?';
                    $pdo->prepare("DELETE FROM users WHERE id IN ($user_placeholders)")->execute($user_ids);
                }
            }
            
            $pdo->commit();
            $message = "সফলভাবে {$class_info['name']} - {$class_info['section']} ক্লাসের {$student_count}জন ছাত্র-ছাত্রী এবং তাদের সকল রেকর্ড মুছে ফেলা হয়েছে।";
            
        } catch (Exception $e) {
            $pdo->rollBack();
            $error = 'ত্রুটি: ' . $e->getMessage();
        }
    } else {
        $error = 'অনুগ্রহ করে একটি ক্লাস নির্বাচন করুন এবং নিশ্চিতকরণ টেক্সট সঠিকভাবে লিখুন।';
    }
}

// Get classes for dropdown
$classes_stmt = $pdo->query("
    SELECT c.id, c.name, c.section, COUNT(s.id) as student_count 
    FROM classes c 
    LEFT JOIN students s ON c.id = s.class_id AND s.status = 'active'
    WHERE c.status = 'active' 
    GROUP BY c.id, c.name, c.section 
    ORDER BY c.name, c.section
");
$classes = $classes_stmt->fetchAll();
?>

<!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">
    <link href="../assets/css/style.css" rel="stylesheet">
    <style>
        .danger-zone {
            border: 2px solid #dc3545;
            border-radius: 8px;
            background-color: #f8d7da;
            padding: 20px;
            margin: 20px 0;
        }
        .warning-text {
            color: #721c24;
            font-weight: bold;
        }
        .confirm-input {
            background-color: #fff;
            border: 2px solid #dc3545;
        }
    </style>
</head>
<body>
    <!-- Navigation -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
        <div class="container-fluid">
            <a class="navbar-brand" href="../index.php">
                <i class="fas fa-graduation-cap"></i> স্কুল ম্যানেজমেন্ট সিস্টেম
            </a>
            <div class="navbar-nav ms-auto">
                <a class="nav-link" href="../index.php">
                    <i class="fas fa-home"></i> হোম
                </a>
                <a class="nav-link" href="list.php">
                    <i class="fas fa-users"></i> ছাত্র-ছাত্রী তালিকা
                </a>
                <a class="nav-link" href="../logout.php">
                    <i class="fas fa-sign-out-alt"></i> লগআউট
                </a>
            </div>
        </div>
    </nav>

    <div class="container mt-4">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header bg-danger text-white">
                        <h5><i class="fas fa-exclamation-triangle"></i> ক্লাসভিত্তিক সকল ছাত্র-ছাত্রী রিসেট</h5>
                    </div>
                    <div class="card-body">
                        <?php if ($message): ?>
                            <div class="alert reset-success alert-dismissible fade show">
                                <i class="fas fa-check-circle"></i> <?php echo $message; ?>
                                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                            </div>
                        <?php endif; ?>

                        <?php if ($error): ?>
                            <div class="alert reset-error alert-dismissible fade show">
                                <i class="fas fa-exclamation-circle"></i> <?php echo $error; ?>
                                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                            </div>
                        <?php endif; ?>

                        <div class="danger-zone">
                            <div class="text-center mb-3">
                                <i class="fas fa-exclamation-triangle fa-3x warning-icon"></i>
                            </div>
                            <h4 class="text-center warning-text mb-3">⚠️ বিপদজনক অপারেশন ⚠️</h4>
                            <div class="warning-text mb-3">
                                <p><strong>সতর্কতা:</strong> এই অপারেশনটি নির্বাচিত ক্লাসের সকল ছাত্র-ছাত্রী এবং তাদের সাথে সম্পর্কিত সকল তথ্য স্থায়ীভাবে মুছে ফেলবে, যার মধ্যে রয়েছে:</p>
                                <ul>
                                    <li>ছাত্র-ছাত্রীদের ব্যক্তিগত তথ্য</li>
                                    <li>উপস্থিতির রেকর্ড</li>
                                    <li>পরীক্ষার ফলাফল</li>
                                    <li>ফি/বেতনের রেকর্ড</li>
                                    <li>লাইব্রেরি বই ইস্যুর রেকর্ড</li>
                                    <li>বিষয় নির্বাচনের তথ্য</li>
                                    <li>ব্যবহারকারী অ্যাকাউন্ট (যদি থাকে)</li>
                                </ul>
                                <p class="text-danger"><strong>এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না!</strong></p>
                            </div>
                        </div>

                        <form method="POST" onsubmit="return confirmReset()">
                            <div class="mb-3">
                                <label for="class_id" class="form-label">ক্লাস নির্বাচন করুন:</label>
                                <select class="form-select" id="class_id" name="class_id" required onchange="updateStudentCount()">
                                    <option value="">-- ক্লাস নির্বাচন করুন --</option>
                                    <?php foreach ($classes as $class): ?>
                                        <option value="<?php echo $class['id']; ?>" 
                                                data-count="<?php echo $class['student_count']; ?>"
                                                <?php echo ($preselected_class == $class['id']) ? 'selected' : ''; ?>>
                                            <?php echo $class['name'] . ' - ' . $class['section']; ?> 
                                            (<?php echo $class['student_count']; ?>জন ছাত্র-ছাত্রী)
                                        </option>
                                    <?php endforeach; ?>
                                </select>
                            </div>

                            <div id="student-count-info" class="alert student-count-info" style="display: none;">
                                <i class="fas fa-info-circle"></i> 
                                <span id="count-text"></span>
                            </div>

                            <div class="mb-3">
                                <label for="confirm" class="form-label">
                                    নিশ্চিতকরণের জন্য <strong class="text-danger">"DELETE"</strong> টাইপ করুন:
                                </label>
                                <input type="text" class="form-control confirm-input" id="confirm" name="confirm" 
                                       placeholder="DELETE" required autocomplete="off">
                                <div class="form-text text-danger">
                                    <i class="fas fa-exclamation-triangle"></i> 
                                    অবশ্যই বড় হাতের অক্ষরে "DELETE" লিখুন
                                </div>
                            </div>

                            <div class="d-grid gap-2 d-md-flex justify-content-md-end">
                                <a href="list.php" class="btn btn-secondary me-md-2">
                                    <i class="fas fa-arrow-left"></i> ফিরে যান
                                </a>
                                <button type="submit" class="btn btn-reset-danger" id="reset-btn" disabled>
                                    <i class="fas fa-trash-alt"></i> সকল ছাত্র-ছাত্রী মুছে ফেলুন
                                </button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        // Auto-update student count if class is preselected
        document.addEventListener('DOMContentLoaded', function() {
            const classSelect = document.getElementById('class_id');
            if (classSelect.value) {
                updateStudentCount();
            }
        });
    </script>
    <script>
        function updateStudentCount() {
            const select = document.getElementById('class_id');
            const countInfo = document.getElementById('student-count-info');
            const countText = document.getElementById('count-text');
            const resetBtn = document.getElementById('reset-btn');
            const confirmInput = document.getElementById('confirm');
            
            if (select.value) {
                const selectedOption = select.options[select.selectedIndex];
                const count = selectedOption.getAttribute('data-count');
                const className = selectedOption.text;
                
                if (count > 0) {
                    countText.textContent = `${className} ক্লাসে ${count}জন সক্রিয় ছাত্র-ছাত্রী রয়েছে যারা মুছে ফেলা হবে।`;
                    countInfo.style.display = 'block';
                    countInfo.className = 'alert alert-warning';
                } else {
                    countText.textContent = `${className} ক্লাসে কোন সক্রিয় ছাত্র-ছাত্রী নেই।`;
                    countInfo.style.display = 'block';
                    countInfo.className = 'alert alert-info';
                }
            } else {
                countInfo.style.display = 'none';
            }
            
            // Reset confirmation input and button state
            confirmInput.value = '';
            resetBtn.disabled = true;
        }
        
        // Enable/disable reset button based on confirmation input
        document.getElementById('confirm').addEventListener('input', function() {
            const resetBtn = document.getElementById('reset-btn');
            const classSelect = document.getElementById('class_id');
            
            if (this.value === 'DELETE' && classSelect.value) {
                resetBtn.disabled = false;
            } else {
                resetBtn.disabled = true;
            }
        });
        
        function confirmReset() {
            const select = document.getElementById('class_id');
            const selectedOption = select.options[select.selectedIndex];
            const count = selectedOption.getAttribute('data-count');
            const className = selectedOption.text;
            
            if (count == 0) {
                alert('এই ক্লাসে কোন সক্রিয় ছাত্র-ছাত্রী নেই।');
                return false;
            }
            
            return confirm(
                `আপনি কি সত্যিই ${className} ক্লাসের ${count}জন ছাত্র-ছাত্রী এবং তাদের সকল রেকর্ড স্থায়ীভাবে মুছে ফেলতে চান?\n\n` +
                `এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না!\n\n` +
                `নিশ্চিত হতে "OK" চাপুন।`
            );
        }
    </script>
</body>
</html>