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

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

$message = '';
$error = '';
$teachers = [];

// Get filter parameters from URL
$search = $_GET['search'] ?? '';

// Fetch teachers for dropdown/filter
try {
    if (!empty($search)) {
        $stmt = $pdo->prepare("
            SELECT t.id, t.employee_id, t.first_name, t.last_name, u.username 
            FROM teachers t 
            JOIN users u ON t.user_id = u.id 
            WHERE (t.first_name LIKE ? OR t.last_name LIKE ? OR t.employee_id LIKE ? OR u.username LIKE ?)
            AND t.status = 'active' 
            ORDER BY t.first_name, t.last_name
        ");
        $searchTerm = "%$search%";
        $stmt->execute([$searchTerm, $searchTerm, $searchTerm, $searchTerm]);
    } else {
        $stmt = $pdo->prepare("
            SELECT t.id, t.employee_id, t.first_name, t.last_name, u.username 
            FROM teachers t 
            JOIN users u ON t.user_id = u.id 
            WHERE t.status = 'active' 
            ORDER BY t.first_name, t.last_name
        ");
        $stmt->execute();
    }
    $teachers = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
    $error = "শিক্ষক আনতে গিয়ে একটি ত্রুটি হয়েছে: " . $e->getMessage();
}

// Handle data reset action
$reset_action = $_POST['reset_action'] ?? $_GET['reset_action'] ?? null;

if ($reset_action && ($_SERVER['REQUEST_METHOD'] === 'POST' || isset($_GET['reset_action']))) {
    $teacher_ids = $_POST['teacher_ids'] ?? [];
    
    // If reset_all_subjects was requested via GET and no form submission yet, show confirmation
    if ($reset_action === 'reset_all_subjects' && $_SERVER['REQUEST_METHOD'] !== 'POST' && isset($_GET['reset_action'])) {
        $confirm = $_GET['confirm'] ?? null;
        if ($confirm === 'yes') {
            // Execute the reset
            try {
                $stmt = $pdo->prepare("UPDATE class_subjects SET teacher_id = NULL WHERE teacher_id IS NOT NULL");
                $stmt->execute();
                $message = "সকল শিক্ষকের সকল বিষয় নির্ধারণ সফলভাবে মুছে ফেলা হয়েছে।";
                // Check if this reset came from teacher_subject_assignment.php and redirect back if needed
                $redirect_back = $_GET['redirect_back'] ?? null;
                if ($redirect_back === 'teacher_subject_assignment') {
                    header('Location: ./teacher_subject_assignment.php');
                    exit();
                }
            } catch (Exception $e) {
                $error = "একটি ত্রুটি হয়েছে: " . $e->getMessage();
            }
        } else {
            // Show confirmation for GET request
            $show_confirmation = true;
        }
    }

    // Handle reset_all_subjects action separately since it doesn't require teacher_ids
    if ($reset_action === 'reset_all_subjects' && !isset($show_confirmation)) {
        try {
            $stmt = $pdo->prepare("UPDATE class_subjects SET teacher_id = NULL WHERE teacher_id IS NOT NULL");
            $stmt->execute();
            $message = "সকল শিক্ষকের সকল বিষয় নির্ধারণ সফলভাবে মুছে ফেলা হয়েছে।";
        } catch (Exception $e) {
            $error = "একটি ত্রুটি হয়েছে: " . $e->getMessage();
        }
    } else if (!isset($show_confirmation)) {
        // For other actions, we need teacher_ids to be selected
        if (!empty($teacher_ids)) {
            try {
                $teacher_id_placeholders = implode(',', array_fill(0, count($teacher_ids), '?'));
    
                if ($reset_action === 'reset_subjects') {
                    // Reset teacher subject assignments
                    $stmt = $pdo->prepare("UPDATE class_subjects SET teacher_id = NULL WHERE teacher_id IN ($teacher_id_placeholders)");
                    $stmt->execute($teacher_ids);
                    $message = count($teacher_ids) . " জন শিক্ষকের বিষয় সফলভাবে মুছে ফেলা হয়েছে।";
                } elseif ($reset_action === 'reset_class_teachers') {
                    // Reset class teachers
                    $stmt = $pdo->prepare("UPDATE classes SET class_teacher_id = NULL WHERE class_teacher_id IN ($teacher_id_placeholders)");
                    $stmt->execute($teacher_ids);
                    $message = count($teacher_ids) . " জন শিক্ষকের ক্লাস টিচার সফলভাবে মুছে ফেলা হয়েছে।";
                } elseif ($reset_action === 'reset_assistant_class_teachers') {
                    // Reset assistant class teachers (feature not yet implemented in database)
                    $message = count($teacher_ids) . " জন শিক্ষকের সহায়ক ক্লাস টিচার রিসেট করার জন্য ডাটাবেস ফিল্ড পাওয়া যায়নি। প্রথমে ডাটাবেস স্কিমা আপডেট করুন।";
                } elseif ($reset_action === 'reset_attendance') {
                    // Reset teacher attendance records
                    $stmt = $pdo->prepare("DELETE FROM teacher_attendance WHERE teacher_id IN ($teacher_id_placeholders)");
                    $stmt->execute($teacher_ids);
                    $message = count($teacher_ids) . " জন শিক্ষকের উপস্থিতি রেকর্ড সফলভাবে মুছে ফেলা হয়েছে।";
                }
            } catch (Exception $e) {
                $error = "একটি ত্রুটি হয়েছে: " . $e->getMessage();
            }
        } else {
            $error = "রিসেট করার জন্য কোনো শিক্ষক নির্বাচন করা হয়নি।";
        }
    }
}
?>

<!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="https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@300;400;500;600;700&display=swap" rel="stylesheet">
    <style>
        body { font-family: 'Hind Siliguri', sans-serif; background-color: #f4f7f6; }
        .page-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 2rem 0; margin-bottom: 2rem; }
        .card { border: none; border-radius: 15px; box-shadow: 0 5px 15px rgba(0,0,0,0.08); margin-bottom: 2rem; }
        .card-header { background-color: #fff; border-bottom: 1px solid #eee; font-weight: 600; font-size: 1.2rem; padding: 1rem 1.5rem; }
        .form-label { font-weight: 500; }
        .teacher-list-table th { background-color: #f8f9fa; }
    </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-cogs"></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="../logout.php">
                    <i class="fas fa-sign-out-alt"></i> লগআউট
                </a>
            </div>
        </div>
    </nav>

<div class="page-header text-center">
    <div class="container">
        <h1><i class="fas fa-undo"></i> শিক্ষক ডেটা রিসেট</h1>
        <p class="lead">শিক্ষকদের বিষয়, রুটিন এবং উপস্থিতি ডেটা রিসেট করুন</p>
    </div>
</div>

<div class="container">
    <div class="row justify-content-center">
        <div class="col-lg-12">

            <?php if ($message): ?>
                <div class="alert alert-success alert-dismissible fade show" role="alert"><i class="fas fa-check-circle"></i> <?php echo $message; ?><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>
            <?php endif; ?>
            <?php if ($error): ?>
                <div class="alert alert-danger alert-dismissible fade show" role="alert"><i class="fas fa-exclamation-triangle"></i> <?php echo $error; ?><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>
            <?php endif; ?>
            
            <?php if (isset($show_confirmation) && $show_confirmation): ?>
            <div class="card">
                <div class="card-body text-center">
                    <h5 class="card-title text-danger"><i class="fas fa-exclamation-triangle"></i> নিশ্চিতকরণ প্রয়োজন</h5>
                    <p class="card-text">আপনি কি নিশ্চিত যে আপনি সকল শিক্ষকের সকল বিষয় নির্ধারণ মুছে ফেলতে চান?</p>
                    <p class="text-danger"><strong>সতর্কতা:</strong> এই কাজটি সম্পূর্ণভাবে রিসেট করবে এবং ফিরিয়ে আনা যাবে না।</p>
                    <div class="mt-3">
                        <a href="?reset_action=reset_all_subjects&confirm=yes" class="btn btn-danger me-2">
                            <i class="fas fa-check"></i> হ্যাঁ, রিসেট করুন
                        </a>
                        <a href="./reset_teacher_data.php" class="btn btn-secondary">
                            <i class="fas fa-times"></i> বাতিল
                        </a>
                    </div>
                </div>
            </div>
            <?php endif; ?>

            <?php if (!isset($show_confirmation) || !$show_confirmation): ?>
            <!-- Filter Card -->
            <div class="card">
                <div class="card-header"><i class="fas fa-filter"></i> শিক্ষক অনুসন্ধান</div>
                <div class="card-body p-4">
                    <form method="GET" action="">
                        <div class="row">
                            <div class="col-md-9 mb-3">
                                <label for="search" class="form-label">শিক্ষক অনুসন্ধান (নাম, আইডি বা ইউজারনেম)</label>
                                <input type="text" name="search" id="search" class="form-control" placeholder="শিক্ষক অনুসন্ধান করুন..." value="<?php echo htmlspecialchars($search); ?>">
                            </div>
                            <div class="col-md-3 mb-3 d-flex align-items-end">
                                <button type="submit" class="btn btn-primary w-100"><i class="fas fa-search"></i> খুঁজুন</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>

            <!-- Teacher List and Reset Actions -->
            <?php if (!empty($teachers)): ?>
            <div class="card">
                <div class="card-header d-flex justify-content-between align-items-center">
                    <span><i class="fas fa-chalkboard-teacher"></i> শিক্ষক তালিকা (মোট: <?php echo count($teachers); ?>)</span>
                    <div>
                        <button type="button" class="btn btn-warning" onclick="showConfirmationModal('reset_subjects')"><i class="fas fa-book"></i> নির্বাচিতদের বিষয় রিসেট</button>
                        <button type="button" class="btn btn-info" onclick="showConfirmationModal('reset_class_teachers')"><i class="fas fa-chalkboard"></i> নির্বাচিতদের ক্লাস টিচার রিসেট</button>
                        <button type="button" class="btn btn-secondary" onclick="showConfirmationModal('reset_assistant_class_teachers')"><i class="fas fa-chalkboard-teacher"></i> নির্বাচিতদের সহায়ক ক্লাস টিচার রিসেট</button>
                        <button type="button" class="btn btn-danger" onclick="showConfirmationModal('reset_attendance')"><i class="fas fa-clock"></i> নির্বাচিতদের উপস্থিতি রিসেট</button>
                        <button type="button" class="btn btn-dark" onclick="showConfirmationModal('reset_all_subjects')"><i class="fas fa-book-open"></i> সকল শিক্ষকের সকল বিষয় রিসেট</button>
                    </div>
                </div>
                <div class="card-body p-0">
                    <form method="POST" action="" id="resetForm">
                        <input type="hidden" name="reset_action" id="reset_action">
                        <div class="table-responsive">
                            <table class="table table-striped table-hover teacher-list-table mb-0">
                                <thead>
                                    <tr>
                                        <th class="text-center" style="width: 5%;"><input type="checkbox" id="selectAll"></th>
                                        <th>কর্মচারী আইডি</th>
                                        <th>নাম</th>
                                        <th>ইউজারনেম</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach ($teachers as $teacher): ?>
                                    <tr>
                                        <td class="text-center"><input type="checkbox" name="teacher_ids[]" value="<?php echo $teacher['id']; ?>" class="teacher-checkbox"></td>
                                        <td><?php echo htmlspecialchars($teacher['employee_id']); ?></td>
                                        <td><?php echo htmlspecialchars($teacher['first_name'] . ' ' . $teacher['last_name']); ?></td>
                                        <td><?php echo htmlspecialchars($teacher['username']); ?></td>
                                    </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    </form>
                </div>
            </div>
            <?php elseif(isset($_GET['search'])): ?>
            <div class="alert alert-info text-center"><i class="fas fa-info-circle"></i> আপনার নির্বাচিত ফিল্টারে কোনো শিক্ষক পাওয়া যায়নি।</div>
            <?php endif; ?>
            <?php endif; ?>

        </div>
    </div>
</div>

<!-- Confirmation Modal -->
<div class="modal fade" id="confirmationModal" tabindex="-1">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">নিশ্চিতকরণ</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <p id="modal-message"></p>
                <p class="text-danger"><strong>সতর্কতা:</strong> এই কাজটি ফিরিয়ে আনা যাবে না। আপনি কি নিশ্চিত?</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">বাতিল</button>
                <button type="button" class="btn btn-primary" id="confirmResetBtn">নিশ্চিত করুন</button>
            </div>
        </div>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script>
document.getElementById('selectAll')?.addEventListener('change', function(e) {
    document.querySelectorAll('.teacher-checkbox').forEach(checkbox => {
        checkbox.checked = e.target.checked;
    });
});

let currentAction = '';
const confirmationModal = new bootstrap.Modal(document.getElementById('confirmationModal'));

function showConfirmationModal(action) {
    const selectedTeachers = document.querySelectorAll('.teacher-checkbox:checked').length;
    
    // For reset_all_subjects, redirect to the confirmation page
    if (action === 'reset_all_subjects') {
        window.location.href = 'reset_teacher_data.php?reset_action=reset_all_subjects';
        return;
    }
    
    // For other actions, we need teachers to be selected
    if (selectedTeachers === 0) {
        alert('অনুগ্রহ করে অন্তত একজন শিক্ষক নির্বাচন করুন।');
        return;
    }

    currentAction = action;
    let actionText = '';

    if (action === 'reset_subjects') {
        actionText = 'বিষয়';
    } else if (action === 'reset_class_teachers') {
        actionText = 'ক্লাস টিচার';
    } else if (action === 'reset_assistant_class_teachers') {
        actionText = 'সহায়ক ক্লাস টিচার';
    } else if (action === 'reset_attendance') {
        actionText = 'উপস্থিতি রেকর্ড';
    }
    
    const message = `আপনি কি নিশ্চিত যে আপনি নির্বাচিত <strong>${selectedTeachers}</strong> জন শিক্ষকের ${actionText} মুছে ফেলতে চান?`;
    
    document.getElementById('modal-message').innerHTML = message;
    confirmationModal.show();
}

document.getElementById('confirmResetBtn').addEventListener('click', function() {
    document.getElementById('reset_action').value = currentAction;
    document.getElementById('resetForm').submit();
});
</script>

</body>
</html>