<?php
/**
 * IBVTE Admin - NOC & ID Card Applications Management
 */

require_once __DIR__ . '/../config.php';
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/auth.php';

// Check database connection before proceeding
if (!checkDBConnection()) {
    exit;
}

Auth()->requireRole(['super_admin', 'admin']);

$db = DB();
$flash = getFlashMessage();

// Handle status updates
if (isset($_GET['action']) && isset($_GET['id'])) {
    $action = $_GET['action'];
    $id = intval($_GET['id']);
    
    if ($action === 'approve') {
        $db->update('noc_applications', ['status' => 'approved'], ['id' => $id]);
        redirectWithMessage('noc-applications.php', 'Application approved successfully', 'success');
    } elseif ($action === 'reject') {
        $db->update('noc_applications', ['status' => 'rejected'], ['id' => $id]);
        redirectWithMessage('noc-applications.php', 'Application rejected', 'success');
    } elseif ($action === 'delete') {
        $db->delete('noc_applications', ['id' => $id]);
        redirectWithMessage('noc-applications.php', 'Application deleted', 'success');
    }
}

// Filters
$statusFilter = $_GET['status'] ?? '';
$typeFilter = $_GET['type'] ?? '';
$search = $_GET['search'] ?? '';

$sql = "SELECT * FROM noc_applications WHERE 1=1";
$params = [];

if ($statusFilter) {
    $sql .= " AND status = ?";
    $params[] = $statusFilter;
}
if ($typeFilter) {
    $sql .= " AND application_type = ?";
    $params[] = $typeFilter;
}
if ($search) {
    $sql .= " AND (applicant_name LIKE ? OR application_no LIKE ? OR email LIKE ? OR mobile LIKE ?)";
    $params[] = "%$search%";
    $params[] = "%$search%";
    $params[] = "%$search%";
    $params[] = "%$search%";
}

$sql .= " ORDER BY created_at DESC";
$applications = $db->fetchAll($sql, $params);

// Stats
$stats = [
    'total' => $db->count('noc_applications'),
    'pending' => $db->count('noc_applications', ['status' => 'pending']),
    'approved' => $db->count('noc_applications', ['status' => 'approved']),
    'rejected' => $db->count('noc_applications', ['status' => 'rejected'])
];
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>NOC/ID Card Applications - <?= APP_SHORT_NAME ?></title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
    <link href="../assets/css/admin-style.css" rel="stylesheet">
    <style>
        .stats-card { transition: all 0.3s; border: none; border-radius: 15px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
        .stats-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0,0,0,0.1); }
        .status-badge { padding: 6px 12px; border-radius: 30px; font-weight: 600; font-size: 0.8rem; }
        .status-pending { background: #fff3cd; color: #856404; }
        .status-approved { background: #d4edda; color: #155724; }
        .status-rejected { background: #f8d7da; color: #721c24; }
        .screenshot-img { border-radius: 8px; cursor: pointer; transition: 0.3s; }
        .screenshot-img:hover { opacity: 0.8; }
    </style>
</head>
<body>
    <?php include __DIR__ . '/../includes/admin_header.php'; ?>
    
    <div class="container-fluid">
        <div class="row">
            <?php include __DIR__ . '/../includes/admin_sidebar.php'; ?>
            
            <main class="col-md-9 ms-sm-auto col-lg-10 px-md-4 py-4">
                <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom">
                    <h1 class="h2"><i class="fas fa-id-card-alt me-2 text-primary"></i>NOC & ID Card Applications</h1>
                    <div class="btn-toolbar mb-2 mb-md-0">
                        <button class="btn btn-sm btn-outline-secondary" onclick="window.print()">
                            <i class="fas fa-print me-1"></i>Print Report
                        </button>
                    </div>
                </div>
                
                <?php if ($flash): ?>
                    <div class="alert alert-<?= $flash['type'] ?> alert-dismissible fade show border-0 shadow-sm">
                        <?= $flash['message'] ?>
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    </div>
                <?php endif; ?>
                
                <!-- Stats -->
                <div class="row mb-4">
                    <div class="col-md-3">
                        <div class="card stats-card text-center py-3 bg-white">
                            <h3 class="text-primary mb-0"><?= $stats['total'] ?></h3>
                            <small class="text-muted fw-bold text-uppercase">Total Received</small>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="card stats-card text-center py-3 bg-white">
                            <h3 class="text-warning mb-0"><?= $stats['pending'] ?></h3>
                            <small class="text-muted fw-bold text-uppercase">Pending Review</small>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="card stats-card text-center py-3 bg-white">
                            <h3 class="text-success mb-0"><?= $stats['approved'] ?></h3>
                            <small class="text-muted fw-bold text-uppercase">Approved</small>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="card stats-card text-center py-3 bg-white">
                            <h3 class="text-danger mb-0"><?= $stats['rejected'] ?></h3>
                            <small class="text-muted fw-bold text-uppercase">Rejected</small>
                        </div>
                    </div>
                </div>
                
                <!-- Filters -->
                <div class="card mb-4 border-0 shadow-sm" style="border-radius:15px;">
                    <div class="card-body">
                        <form method="GET" class="row g-3">
                            <div class="col-md-3">
                                <label class="small fw-bold text-muted">Filter Type</label>
                                <select name="type" class="form-select border-2">
                                    <option value="">All Types</option>
                                    <option value="noc" <?= $typeFilter === 'noc' ? 'selected' : '' ?>>NOC Only</option>
                                    <option value="id_card" <?= $typeFilter === 'id_card' ? 'selected' : '' ?>>ID Card Only</option>
                                    <option value="both" <?= $typeFilter === 'both' ? 'selected' : '' ?>>Both</option>
                                </select>
                            </div>
                            <div class="col-md-3">
                                <label class="small fw-bold text-muted">Filter Status</label>
                                <select name="status" class="form-select border-2">
                                    <option value="">All Status</option>
                                    <option value="pending" <?= $statusFilter === 'pending' ? 'selected' : '' ?>>Pending</option>
                                    <option value="approved" <?= $statusFilter === 'approved' ? 'selected' : '' ?>>Approved</option>
                                    <option value="rejected" <?= $statusFilter === 'rejected' ? 'selected' : '' ?>>Rejected</option>
                                </select>
                            </div>
                            <div class="col-md-4">
                                <label class="small fw-bold text-muted">Search Applicant</label>
                                <input type="text" name="search" class="form-control border-2" placeholder="Name, App No, Email, Mobile..." value="<?= htmlspecialchars($search) ?>">
                            </div>
                            <div class="col-md-2 d-flex align-items-end">
                                <button type="submit" class="btn btn-primary w-100 shadow-sm py-2">
                                    <i class="fas fa-search me-1"></i> Search
                                </button>
                            </div>
                        </form>
                    </div>
                </div>
                
                <!-- Applications Table -->
                <div class="card border-0 shadow-sm" style="border-radius:15px;">
                    <div class="card-body p-0">
                        <div class="table-responsive">
                            <table class="table table-hover align-middle mb-0">
                                <thead class="bg-light">
                                    <tr>
                                        <th class="ps-4">App No.</th>
                                        <th>Applicant Details</th>
                                        <th>Application Type</th>
                                        <th>Document</th>
                                        <th>Fee Mode</th>
                                        <th>Status</th>
                                        <th>Applied Date</th>
                                        <th class="text-end pe-4">Actions</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php if (empty($applications)): ?>
                                        <tr><td colspan="8" class="text-center py-5 text-muted">No applications found matching your filters.</td></tr>
                                    <?php endif; ?>
                                    <?php foreach ($applications as $app): ?>
                                        <tr>
                                            <td class="ps-4">
                                                <span class="fw-bold text-primary"><?= htmlspecialchars($app['application_no']) ?></span>
                                            </td>
                                            <td>
                                                <div class="fw-bold text-dark"><?= htmlspecialchars($app['applicant_name']) ?></div>
                                                <small class="text-muted"><i class="fas fa-envelope me-1 small"></i><?= htmlspecialchars($app['email']) ?></small><br>
                                                <small class="text-muted"><i class="fas fa-phone me-1 small"></i><?= htmlspecialchars($app['mobile']) ?></small>
                                            </td>
                                            <td>
                                                <span class="badge bg-light text-dark border px-2 py-1">
                                                    <?= strtoupper($app['application_type']) ?>
                                                </span>
                                            </td>
                                            <td><?= ucfirst(str_replace('_', ' ', $app['document_type'])) ?></td>
                                            <td>
                                                <?php if ($app['payment_mode'] === 'online'): ?>
                                                    <span class="text-primary"><i class="fas fa-globe me-1"></i>Online</span>
                                                    <?php if ($app['payment_screenshot']): ?>
                                                        <a href="../assets/uploads/noc_payments/<?= $app['payment_screenshot'] ?>" target="_blank" class="ms-1 small text-decoration-none">
                                                            <i class="fas fa-image"></i> View
                                                        </a>
                                                    <?php endif; ?>
                                                <?php else: ?>
                                                    <span class="text-secondary"><i class="fas fa-history me-1"></i>Already Paid</span>
                                                <?php endif; ?>
                                            </td>
                                            <td>
                                                <span class="status-badge status-<?= $app['status'] ?>">
                                                    <i class="fas fa-circle me-1 small"></i> <?= ucfirst($app['status']) ?>
                                                </span>
                                            </td>
                                            <td><?= date('d M Y, h:i A', strtotime($app['created_at'])) ?></td>
                                            <td class="text-end pe-4">
                                                <div class="btn-group">
                                                    <?php if ($app['status'] === 'pending'): ?>
                                                        <a href="?action=approve&id=<?= $app['id'] ?>" class="btn btn-sm btn-outline-success" onclick="return confirm('Approve this application?')">
                                                            <i class="fas fa-check"></i>
                                                        </a>
                                                        <a href="?action=reject&id=<?= $app['id'] ?>" class="btn btn-sm btn-outline-danger" onclick="return confirm('Reject this application?')">
                                                            <i class="fas fa-times"></i>
                                                        </a>
                                                    <?php endif; ?>
                                                    <?php if ($app['status'] === 'approved'): ?>
                                                        <a href="generate-admit-card.php?id=<?= $app['id'] ?>&type=noc" target="_blank" class="btn btn-sm btn-primary" title="Generate Document">
                                                            <i class="fas fa-print"></i>
                                                        </a>
                                                    <?php endif; ?>
                                                    <a href="?action=delete&id=<?= $app['id'] ?>" class="btn btn-sm btn-outline-secondary" onclick="return confirm('Delete this record permanently?')">
                                                        <i class="fas fa-trash-alt"></i>
                                                    </a>
                                                    <button type="button" class="btn btn-sm btn-outline-info" data-bs-toggle="modal" data-bs-target="#viewModal<?= $app['id'] ?>" title="View Application Details">
                                                        <i class="fas fa-eye"></i>
                                                    </button>
                                                </div>
                                            </td>
                                        </tr>

                                        <!-- View Application Modal -->
                                        <div class="modal fade" id="viewModal<?= $app['id'] ?>" tabindex="-1">
                                            <div class="modal-dialog modal-lg">
                                                <div class="modal-content border-0 shadow">
                                                    <div class="modal-header bg-primary text-white">
                                                        <h5 class="modal-title"><i class="fas fa-file-alt me-2"></i>Application Details: <?= htmlspecialchars($app['application_no']) ?></h5>
                                                        <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
                                                    </div>
                                                    <div class="modal-body p-4">
                                                        <div class="row mb-3">
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">Applicant Name</p>
                                                                <h6 class="fw-bold"><?= htmlspecialchars($app['applicant_name']) ?></h6>
                                                            </div>
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">Application Type</p>
                                                                <h6 class="fw-bold"><?= strtoupper($app['application_type']) ?></h6>
                                                            </div>
                                                        </div>
                                                        <div class="row mb-3">
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">Email</p>
                                                                <h6 class="fw-bold"><?= htmlspecialchars($app['email']) ?></h6>
                                                            </div>
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">Mobile Number</p>
                                                                <h6 class="fw-bold"><?= htmlspecialchars($app['mobile']) ?></h6>
                                                            </div>
                                                        </div>
                                                        <div class="row mb-3">
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">College/Institution</p>
                                                                <h6 class="fw-bold"><?= htmlspecialchars($app['college_name'] ?? 'N/A') ?></h6>
                                                            </div>
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">Course Name</p>
                                                                <h6 class="fw-bold"><?= htmlspecialchars($app['course_name'] ?? 'N/A') ?></h6>
                                                            </div>
                                                        </div>
                                                        <div class="row mb-3">
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">Status</p>
                                                                <span class="badge bg-<?= $app['status'] === 'approved' ? 'success' : ($app['status'] === 'rejected' ? 'danger' : 'warning') ?>"><?= ucfirst($app['status']) ?></span>
                                                            </div>
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">Applied On</p>
                                                                <h6 class="fw-bold"><?= date('d F Y, h:i A', strtotime($app['created_at'])) ?></h6>
                                                            </div>
                                                        </div>
                                                        <hr>
                                                        <h6 class="fw-bold text-primary mb-3">Documents & Payment</h6>
                                                        <div class="row">
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">Base Document</p>
                                                                <h6 class="fw-bold"><?= ucfirst(str_replace('_', ' ', $app['document_type'])) ?></h6>
                                                            </div>
                                                            <div class="col-md-6">
                                                                <p class="text-muted small mb-1">Payment Mode</p>
                                                                <h6 class="fw-bold"><?= ucfirst($app['payment_mode']) ?></h6>
                                                                <?php if ($app['payment_screenshot']): ?>
                                                                    <a href="../assets/uploads/noc_payments/<?= $app['payment_screenshot'] ?>" target="_blank" class="btn btn-sm btn-outline-primary mt-2">
                                                                        <i class="fas fa-image me-1"></i> View Payment Screenshot
                                                                    </a>
                                                                <?php endif; ?>
                                                            </div>
                                                        </div>
                                                    </div>
                                                    <div class="modal-footer bg-light">
                                                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </main>
        </div>
    </div>
    
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
