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

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

$user_role = $_SESSION['user_role'];
$user_name = $_SESSION['user_name'];
$error_message = '';
$success_message = '';

// Get all active classes for the dropdown
$classes = [];
try {
    $stmt = $pdo->query("SELECT id, name, section FROM classes WHERE status = 'active' ORDER BY name ASC");
    $classes = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
    $error_message = "ক্লাস তালিকা আনতে সমস্যা হয়েছে: " . $e->getMessage();
}

// Handle form submission
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['save_dates'])) {
    try {
        $date_id = !empty($_POST['date_id']) ? (int)$_POST['date_id'] : null;
        $class_id = !empty($_POST['class_id']) ? (int)$_POST['class_id'] : null;
        $start_date = $_POST['start_date'];
        $end_date = $_POST['end_date'];
        $academic_year = $_POST['academic_year'];
        $description = !empty($_POST['description']) ? trim($_POST['description']) : '';
        $is_active = isset($_POST['is_active']) ? 1 : 0;
        
        // Validate required fields
        if (empty($start_date) || empty($end_date)) {
            throw new Exception("শুরু এবং শেষ তারিখ অবশ্যই প্রদান করতে হবে");
        }
        
        if (strtotime($start_date) > strtotime($end_date)) {
            throw new Exception("শুরুর তারিখ শেষ তারিখের আগে হতে হবে");
        }
        
        // Validate class selection if provided
        if ($class_id) {
            $class_exists = false;
            foreach ($classes as $class) {
                if ($class['id'] == $class_id) {
                    $class_exists = true;
                    break;
                }
            }
            if (!$class_exists) {
                throw new Exception("অবৈধ ক্লাস নির্বাচন");
            }
        }
        
        // Check if there's already an active record for this class
        if ($is_active && $class_id) {
            $stmt = $pdo->prepare("UPDATE admission_publish_dates SET is_active = 0 WHERE is_active = 1 AND class_id = ?");
            $stmt->execute([$class_id]);
        } else if ($is_active && !$class_id) {
            // For global dates, deactivate all global dates
            $stmt = $pdo->prepare("UPDATE admission_publish_dates SET is_active = 0 WHERE is_active = 1 AND class_id IS NULL");
            $stmt->execute();
        }
        
        // Insert or update the record
        $current_timestamp = date('Y-m-d H:i:s');
        
        if ($date_id) {
            // Update existing record
            $stmt = $pdo->prepare("
                UPDATE admission_publish_dates 
                SET class_id = ?, start_date = ?, end_date = ?, academic_year = ?, description = ?, is_active = ?, updated_at = ?
                WHERE id = ?
            ");
            
            $result = $stmt->execute([
                $class_id,
                $start_date,
                $end_date,
                $academic_year,
                $description,
                $is_active,
                $current_timestamp,
                $date_id
            ]);
        } else {
            // Insert new record
            $stmt = $pdo->prepare("
                INSERT INTO admission_publish_dates (class_id, start_date, end_date, academic_year, description, is_active, created_at, updated_at) 
                VALUES (?, ?, ?, ?, ?, ?, ?, ?)
                ON DUPLICATE KEY UPDATE 
                class_id = VALUES(class_id),
                start_date = VALUES(start_date), 
                end_date = VALUES(end_date), 
                academic_year = VALUES(academic_year), 
                description = VALUES(description),
                is_active = VALUES(is_active), 
                updated_at = VALUES(updated_at)
            ");
            
            $result = $stmt->execute([
                $class_id,
                $start_date,
                $end_date,
                $academic_year,
                $description,
                $is_active,
                $current_timestamp,
                $current_timestamp
            ]);
        }
        
        if ($result) {
            $success_message = "তারিখসমূহ সফলভাবে সংরক্ষিত হয়েছে";
            // Refresh the list
            $stmt = $pdo->query("SELECT apd.*, c.name as class_name, c.section as class_section FROM admission_publish_dates apd LEFT JOIN classes c ON apd.class_id = c.id ORDER BY apd.is_active DESC, apd.created_at DESC");
            $all_dates = $stmt->fetchAll(PDO::FETCH_ASSOC);
        } else {
            throw new Exception("তারিখসমূহ সংরক্ষণ করতে ব্যর্থ হয়েছে");
        }
    } catch (Exception $e) {
        $error_message = $e->getMessage();
    }
}

// Get current admission dates
$current_dates = null;
try {
    $stmt = $pdo->query("SELECT apd.*, c.name as class_name, c.section as class_section FROM admission_publish_dates apd LEFT JOIN classes c ON apd.class_id = c.id ORDER BY apd.id DESC LIMIT 1");
    $current_dates = $stmt->fetch();
} catch (Exception $e) {
    $current_dates = null;
}

// Get all admission dates for listing
$all_dates = [];
try {
    $stmt = $pdo->query("SELECT apd.*, c.name as class_name, c.section as class_section FROM admission_publish_dates apd LEFT JOIN classes c ON apd.class_id = c.id ORDER BY apd.is_active DESC, apd.created_at DESC");
    $all_dates = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
    $error_message = "তারিখসমূহ আনতে সমস্যা হয়েছে: " . $e->getMessage();
}

// Handle delete request
if (isset($_GET['delete_id']) && is_numeric($_GET['delete_id'])) {
    try {
        $delete_id = (int)$_GET['delete_id'];
        $stmt = $pdo->prepare("DELETE FROM admission_publish_dates WHERE id = ?");
        $result = $stmt->execute([$delete_id]);
        
        if ($result) {
            $success_message = "তারিখসমূহ সফলভাবে মুছে ফেলা হয়েছে";
            // Refresh the list
            $stmt = $pdo->query("SELECT apd.*, c.name as class_name, c.section as class_section FROM admission_publish_dates apd LEFT JOIN classes c ON apd.class_id = c.id ORDER BY apd.is_active DESC, apd.created_at DESC");
            $all_dates = $stmt->fetchAll(PDO::FETCH_ASSOC);
        } else {
            throw new Exception("তারিখসমূহ মুছে ফেলতে ব্যর্থ হয়েছে");
        }
    } catch (Exception $e) {
        $error_message = $e->getMessage();
    }
}

// Handle edit request
if (isset($_GET['edit_id']) && is_numeric($_GET['edit_id'])) {
    try {
        $edit_id = (int)$_GET['edit_id'];
        $stmt = $pdo->prepare("SELECT apd.*, c.name as class_name, c.section as class_section FROM admission_publish_dates apd LEFT JOIN classes c ON apd.class_id = c.id WHERE apd.id = ?");
        $stmt->execute([$edit_id]);
        $current_dates = $stmt->fetch();
    } catch (Exception $e) {
        $error_message = "তারিখসমূহ আনতে সমস্যা হয়েছে: " . $e->getMessage();
    }
}

// Ensure table exists
try {
    $pdo->exec("
        CREATE TABLE IF NOT EXISTS admission_publish_dates (
            id INT AUTO_INCREMENT PRIMARY KEY,
            start_date DATE NOT NULL,
            end_date DATE NOT NULL,
            academic_year VARCHAR(10) NOT NULL,
            is_active TINYINT(1) DEFAULT 0,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    ");
} catch (Exception $e) {
    // Table creation failed, but we'll continue
}
?>

<!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">
    <link href="../assets/css/jessoreboard-theme.css" rel="stylesheet">
    <link href="../assets/css/sidebar.css" rel="stylesheet">
    <style>
        body {
            font-family: 'Hind Siliguri', sans-serif;
            background-color: #f8f9fa;
        }
        
        .dates-header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 2rem 0;
            margin-bottom: 2rem;
        }
        
        .form-card {
            background: white;
            border-radius: 10px;
            box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
            padding: 2rem;
            margin-bottom: 2rem;
        }
        
        .info-card {
            background: white;
            border-radius: 10px;
            box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
            padding: 1.5rem;
            margin-bottom: 1.5rem;
        }
        
        .status-active {
            background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
            color: white;
            padding: 0.5rem 1rem;
            border-radius: 20px;
            font-weight: 600;
        }
        
        .status-inactive {
            background: linear-gradient(135deg, #6c757d 0%, #495057 100%);
            color: white;
            padding: 0.5rem 1rem;
            border-radius: 20px;
            font-weight: 600;
        }
        
        .date-display {
            font-size: 1.2rem;
            font-weight: 600;
            color: #495057;
        }
        
        .table th {
            background-color: #f8f9fa;
            font-weight: 600;
        }
        
        .table td {
            vertical-align: middle;
        }
    </style>
</head>
<body>
    <div class="sidebar-container">
        <?php echo renderSidebar('index_with_sidebar.php', $user_role, $user_name); ?>
        <div class="main-content">
            <!-- Header -->
            <div class="dates-header">
                <div class="container">
                    <div class="row align-items-center">
                        <div class="col-md-8">
                            <h1><i class="fas fa-calendar-alt"></i> ভর্তি আবেদন প্রকাশের তারিখ</h1>
                            <p class="mb-0">ভর্তি আবেদন শুরু এবং শেষের তারিখ নির্ধারণ করুন</p>
                        </div>
                        <div class="col-md-4 text-md-end">
                            <a href="admission_applications.php" class="btn btn-light">
                                <i class="fas fa-arrow-left"></i> ভর্তি আবেদন পর্যালোচনা
                            </a>
                        </div>
                    </div>
                </div>
            </div>

            <div class="container">
                <?php if ($error_message): ?>
                    <div class="alert alert-danger alert-dismissible fade show" role="alert">
                        <i class="fas fa-exclamation-triangle"></i> <?php echo $error_message; ?>
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    </div>
                <?php endif; ?>
                
                <?php if ($success_message): ?>
                    <div class="alert alert-success alert-dismissible fade show" role="alert">
                        <i class="fas fa-check-circle"></i> <?php echo $success_message; ?>
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    </div>
                <?php endif; ?>

                <!-- Current Dates Display -->
                <?php if ($current_dates): ?>
                    <div class="info-card">
                        <h5><i class="fas fa-info-circle"></i> বর্তমান ভর্তি আবেদন তারিখসমূহ</h5>
                        <div class="row mt-3">
                            <?php if (!empty($current_dates['class_id'])): ?>
                                <div class="col-md-3">
                                    <p class="mb-1"><strong>ক্লাস:</strong></p>
                                    <p class="date-display"><?php echo htmlspecialchars(($current_dates['class_name'] ?? '') . (($current_dates['class_section'] ?? '') ? ' - ' . ($current_dates['class_section'] ?? '') : '')); ?></p>
                                </div>
                            <?php else: ?>
                                <div class="col-md-3">
                                    <p class="mb-1"><strong>ক্লাস:</strong></p>
                                    <p class="date-display">সব ক্লাসের জন্য</p>
                                </div>
                            <?php endif; ?>
                            <div class="col-md-3">
                                <p class="mb-1"><strong>শুরুর তারিখ:</strong></p>
                                <p class="date-display"><?php echo date('d/m/Y', strtotime($current_dates['start_date'])); ?></p>
                            </div>
                            <div class="col-md-3">
                                <p class="mb-1"><strong>শেষ তারিখ:</strong></p>
                                <p class="date-display"><?php echo date('d/m/Y', strtotime($current_dates['end_date'])); ?></p>
                            </div>
                            <div class="col-md-3">
                                <p class="mb-1"><strong>শিক্ষাবর্ষ:</strong></p>
                                <p class="date-display"><?php echo htmlspecialchars($current_dates['academic_year']); ?></p>
                                <p class="mb-0">
                                    <span class="<?php echo $current_dates['is_active'] ? 'status-active' : 'status-inactive'; ?>">
                                        <?php echo $current_dates['is_active'] ? 'সক্রিয়' : 'নিষ্ক্রিয়'; ?>
                                    </span>
                                </p>
                            </div>
                            <?php if (!empty($current_dates['description'])): ?>
                                <div class="col-md-12 mt-2">
                                    <p class="mb-1"><strong>বর্ণনা:</strong></p>
                                    <p class="text-muted"><?php echo htmlspecialchars($current_dates['description']); ?></p>
                                </div>
                            <?php endif; ?>
                        </div>
                    </div>
                <?php endif; ?>

                <!-- Date Setting Form -->
                <div class="form-card">
                    <h5><i class="fas fa-calendar-plus"></i> 
                        <?php echo (!empty($current_dates) && !empty($current_dates['id'])) ? 'তারিখ সম্পাদনা করুন' : 'নতুন তারিখ নির্ধারণ করুন'; ?>
                    </h5>
                    <form method="POST" class="row g-3 mt-3">
                        <?php if (!empty($current_dates) && !empty($current_dates['id'])): ?>
                            <input type="hidden" name="date_id" value="<?php echo $current_dates['id']; ?>">
                        <?php endif; ?>
                        <div class="col-md-6">
                            <label for="class_id" class="form-label">ক্লাস (ঐচ্ছিক - সব ক্লাসের জন্য ফাঁকা রাখুন)</label>
                            <select name="class_id" id="class_id" class="form-select">
                                <option value="">সব ক্লাসের জন্য</option>
                                <?php foreach ($classes as $class): ?>
                                    <option value="<?php echo $class['id']; ?>" <?php echo ($current_dates && $current_dates['class_id'] == $class['id']) ? 'selected' : ''; ?>>
                                        <?php echo htmlspecialchars($class['name'] . ($class['section'] ? ' - ' . $class['section'] : '')); ?>
                                    </option>
                                <?php endforeach; ?>
                            </select>
                            <div class="form-text">কোন নির্দিষ্ট ক্লাসের জন্য ভর্তি তারিখ নির্ধারণ করতে চাইলে ক্লাস নির্বাচন করুন</div>
                        </div>
                        
                        <div class="col-md-6">
                            <label for="start_date" class="form-label">শুরুর তারিখ *</label>
                            <input type="date" name="start_date" id="start_date" class="form-control" 
                                   value="<?php echo $current_dates ? $current_dates['start_date'] : date('Y-m-d'); ?>" required>
                        </div>
                        
                        <div class="col-md-6">
                            <label for="end_date" class="form-label">শেষ তারিখ *</label>
                            <input type="date" name="end_date" id="end_date" class="form-control" 
                                   value="<?php echo $current_dates ? $current_dates['end_date'] : date('Y-m-d', strtotime('+30 days')); ?>" required>
                        </div>
                        
                        <div class="col-md-6">
                            <label for="academic_year" class="form-label">শিক্ষাবর্ষ *</label>
                            <input type="text" name="academic_year" id="academic_year" class="form-control" 
                                   value="<?php echo $current_dates ? $current_dates['academic_year'] : (date('Y') . '-' . (date('Y') + 1)); ?>" 
                                   placeholder="যেমন: 2025-2026" required>
                        </div>
                        
                        <div class="col-md-12">
                            <label for="description" class="form-label">বর্ণনা (ঐচ্ছিক)</label>
                            <textarea name="description" id="description" class="form-control" rows="2" placeholder="ভর্তি সংক্রান্ত অতিরিক্ত তথ্য লিখুন"><?php echo $current_dates ? htmlspecialchars($current_dates['description']) : ''; ?></textarea>
                        </div>
                        
                        <div class="col-md-6">
                            <label class="form-label">অবস্থা</label>
                            <div class="form-check mt-2">
                                <input class="form-check-input" type="checkbox" name="is_active" id="is_active" 
                                       <?php echo ($current_dates && $current_dates['is_active']) ? 'checked' : ''; ?>>
                                <label class="form-check-label" for="is_active">
                                    সক্রিয় (এই তারিখসমূহ বর্তমানে প্রযোজ্য)
                                </label>
                            </div>
                        </div>
                        
                        <div class="col-12">
                            <button type="submit" name="save_dates" class="btn btn-primary">
                                <i class="fas fa-save"></i> 
                                <?php echo (!empty($current_dates) && !empty($current_dates['id'])) ? 'তারিখসমূহ আপডেট করুন' : 'তারিখসমূহ সংরক্ষণ করুন'; ?>
                            </button>
                            <?php if (!empty($current_dates) && !empty($current_dates['id'])): ?>
                                <a href="admission_publish_dates.php" class="btn btn-secondary">
                                    <i class="fas fa-times"></i> বাতিল
                                </a>
                            <?php else: ?>
                                <a href="admission_publish_dates.php" class="btn btn-secondary">
                                    <i class="fas fa-redo"></i> রিসেট
                                </a>
                            <?php endif; ?>
                        </div>
                    </form>
                </div>

                <!-- All Dates Listing -->
                <div class="info-card">
                    <div class="d-flex justify-content-between align-items-center">
                        <h5><i class="fas fa-list"></i> সব ভর্তি তারিখসমূহ</h5>
                        <span class="badge bg-primary"><?php echo count($all_dates); ?> টি রেকর্ড</span>
                    </div>
                    
                    <?php if (empty($all_dates)): ?>
                        <div class="text-center py-4">
                            <i class="fas fa-calendar-times fa-3x text-muted mb-3"></i>
                            <p class="text-muted mb-0">কোন তারিখ পাওয়া যায়নি</p>
                        </div>
                    <?php else: ?>
                        <div class="table-responsive">
                            <table class="table table-hover">
                                <thead>
                                    <tr>
                                        <th>ক্লাস</th>
                                        <th>শুরুর তারিখ</th>
                                        <th>শেষ তারিখ</th>
                                        <th>শিক্ষাবর্ষ</th>
                                        <th>অবস্থা</th>
                                        <th>তৈরি হয়েছে</th>
                                        <th>কার্যক্রম</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach ($all_dates as $date): ?>
                                        <tr class="<?php echo $date['is_active'] ? 'table-success' : ''; ?>">
                                            <td>
                                                <?php if (!empty($date['class_id'])): ?>
                                                    <?php echo htmlspecialchars(($date['class_name'] ?? '') . (($date['class_section'] ?? '') ? ' - ' . ($date['class_section'] ?? '') : '')); ?>
                                                <?php else: ?>
                                                    <span class="text-muted">সব ক্লাসের জন্য</span>
                                                <?php endif; ?>
                                            </td>
                                            <td><?php echo date('d/m/Y', strtotime($date['start_date'])); ?></td>
                                            <td><?php echo date('d/m/Y', strtotime($date['end_date'])); ?></td>
                                            <td><?php echo htmlspecialchars($date['academic_year']); ?></td>
                                            <td>
                                                <span class="badge <?php echo $date['is_active'] ? 'bg-success' : 'bg-secondary'; ?>">
                                                    <?php echo $date['is_active'] ? 'সক্রিয়' : 'নিষ্ক্রিয়'; ?>
                                                </span>
                                            </td>
                                            <td><?php echo date('d/m/Y H:i', strtotime($date['created_at'])); ?></td>
                                            <td>
                                                <div class="btn-group" role="group">
                                                    <a href="?edit_id=<?php echo $date['id']; ?>" class="btn btn-sm btn-outline-primary" title="সম্পাদনা">
                                                        <i class="fas fa-edit"></i>
                                                    </a>
                                                    <a href="?delete_id=<?php echo $date['id']; ?>" class="btn btn-sm btn-outline-danger" 
                                                       onclick="return confirm('আপনি কি নিশ্চিত যে এই তারিখটি মুছে ফেলতে চান?')" title="মুছে ফেলুন">
                                                        <i class="fas fa-trash"></i>
                                                    </a>
                                                </div>
                                            </td>
                                        </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    <?php endif; ?>
                </div>
                
                <!-- Information Section -->
                <div class="info-card">
                    <h5><i class="fas fa-lightbulb"></i> তথ্য</h5>
                    <ul class="mt-3">
                        <li>সব ক্লাসের জন্য একটি সক্রিয় তারিখ সেট করা যেতে পারে</li>
                        <li>নির্দিষ্ট ক্লাসের জন্য আলাদা তারিখ সেট করা যেতে পারে</li>
                        <li>যদি নতুন তারিখ সক্রিয় করা হয়, একই ক্লাসের পুরানো তারিখ নিষ্ক্রিয় হয়ে যাবে</li>
                        <li>তারিখসমূহ সংরক্ষণ করার পর ছাত্র/ছাত্রীরা এই সময়সীমার মধ্যে ভর্তি আবেদন করতে পারবে</li>
                        <li>শুরুর তারিখ শেষ তারিখের আগে হতে হবে</li>
                        <li>কোন ক্লাস নির্বাচন না করলে তারিখ সব ক্লাসের জন্য প্রযোজ্য হবে</li>
                    </ul>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>