<?php
session_start();

// Admin credentials
$ADMIN_USER = 'Admin';
$ADMIN_PASS = 'Visa@432%bca';

// Handle login
if (isset($_POST['login'])) {
    if ($_POST['username'] === $ADMIN_USER && $_POST['password'] === $ADMIN_PASS) {
        $_SESSION['admin_logged_in'] = true;
    }
    else {
        $login_error = 'Invalid username or password.';
    }
}

// Handle logout
if (isset($_GET['logout'])) {
    session_destroy();
    header('Location: view-leads.php');
    exit;
}

// Check if logged in
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Admin Login - Visa Solution Plus</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="https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
    <style>
        *{font-family:'Manrope',sans-serif;}
        body{background:linear-gradient(135deg,#18425a 0%,#123346 100%);min-height:100vh;display:flex;align-items:center;justify-content:center;}
        .login-card{background:#fff;border-radius:20px;padding:50px 40px;max-width:440px;width:90%;box-shadow:0 30px 80px rgba(0,0,0,0.3);}
        .login-card h2{color:#18425a;font-weight:800;}
        .login-card .form-control{border:2px solid #e8ecf0;border-radius:12px;padding:14px 18px;font-size:15px;transition:all 0.3s;}
        .login-card .form-control:focus{border-color:#e94d4e;box-shadow:0 0 0 3px rgba(233,77,78,0.15);}
        .btn-login{background:linear-gradient(135deg,#e94d4e,#c0392b);border:none;border-radius:12px;padding:14px;font-weight:700;font-size:16px;color:#fff;transition:all 0.3s;}
        .btn-login:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(233,77,78,0.4);color:#fff;}
    </style>
</head>
<body>
    <div class="login-card text-center">
        <div class="mb-4">
            <img src="images/logo.png" alt="Logo" style="height:50px;" onerror="this.style.display='none'">
            <h2 class="mt-3">Admin Panel</h2>
            <p class="text-muted">Lead Management System</p>
        </div>
        <?php if (isset($login_error)): ?>
            <div class="alert alert-danger rounded-3"><?php echo $login_error; ?></div>
        <?php
    endif; ?>
        <form method="POST" class="text-start">
            <div class="mb-3">
                <label class="form-label fw-bold text-muted small">USERNAME</label>
                <input type="text" name="username" class="form-control" placeholder="Enter username" required autofocus>
            </div>
            <div class="mb-4">
                <label class="form-label fw-bold text-muted small">PASSWORD</label>
                <input type="password" name="password" class="form-control" placeholder="Enter password" required>
            </div>
            <button type="submit" name="login" class="btn btn-login w-100">LOGIN <i class="fas fa-arrow-right ms-2"></i></button>
        </form>
        <a href="index.php" class="d-block mt-4 text-muted small text-decoration-none">&larr; Back to Website</a>
    </div>
</body>
</html>
<?php
    exit;
}

// ===== ADMIN PANEL (LOGGED IN) =====
require_once 'db_connect.php';

if ($pdo === null) {
    echo '<div style="padding:40px;text-align:center;font-family:Manrope,sans-serif;"><h2 style="color:#e94d4e;">Database Connection Error</h2><p>Unable to connect to the database. Please check your MySQL credentials in <b>db_connect.php</b>.</p>';
    if (!empty($db_error)) {
        echo '<p style="background:#f8d7da;border:1px solid #f5c6cb;padding:15px;border-radius:8px;color:#721c24;margin:20px auto;max-width:600px;text-align:left;"><b>Error:</b> ' . htmlspecialchars($db_error) . '</p>';
        echo '<p style="color:#666;font-size:14px;">Go to cPanel → MySQL Databases → Check your database name, username &amp; password.</p>';
    }
    echo '<a href="index.php">← Back to Website</a></div>';
    exit;
}

// Handle delete
if (isset($_GET['delete']) && is_numeric($_GET['delete'])) {
    $stmt = $pdo->prepare('DELETE FROM leads WHERE id = :id');
    $stmt->execute([':id' => (int)$_GET['delete']]);
    header('Location: view-leads.php?msg=deleted');
    exit;
}

// Handle CSV export
if (isset($_GET['export']) && $_GET['export'] === 'csv') {
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="leads_' . date('Y-m-d_His') . '.csv"');
    $output = fopen('php://output', 'w');
    fputcsv($output, ['ID', 'Name', 'Email', 'Phone', 'Service', 'Country', 'Message', 'Source Page', 'Date']);
    $results = $pdo->query('SELECT * FROM leads ORDER BY created_at DESC');
    while ($row = $results->fetch()) {
        fputcsv($output, $row);
    }
    fclose($output);
    exit;
}

// Pagination & Search
$per_page = 20;
$page = isset($_GET['page']) ? max(1, (int)$_GET['page']) : 1;
$search = isset($_GET['search']) ? trim($_GET['search']) : '';
$offset = ($page - 1) * $per_page;

// Count total
if ($search) {
    $s = "%$search%";
    $count_stmt = $pdo->prepare('SELECT COUNT(*) as total FROM leads WHERE name LIKE :s1 OR email LIKE :s2 OR phone LIKE :s3 OR service LIKE :s4');
    $count_stmt->execute([':s1' => $s, ':s2' => $s, ':s3' => $s, ':s4' => $s]);
    $total = $count_stmt->fetch()['total'];
}
else {
    $total = $pdo->query('SELECT COUNT(*) as total FROM leads')->fetch()['total'];
}

$total_pages = max(1, ceil($total / $per_page));

// Fetch leads
if ($search) {
    $stmt = $pdo->prepare('SELECT * FROM leads WHERE name LIKE :s1 OR email LIKE :s2 OR phone LIKE :s3 OR service LIKE :s4 ORDER BY created_at DESC LIMIT :lim OFFSET :off');
    $stmt->bindValue(':s1', $s, PDO::PARAM_STR);
    $stmt->bindValue(':s2', $s, PDO::PARAM_STR);
    $stmt->bindValue(':s3', $s, PDO::PARAM_STR);
    $stmt->bindValue(':s4', $s, PDO::PARAM_STR);
    $stmt->bindValue(':lim', $per_page, PDO::PARAM_INT);
    $stmt->bindValue(':off', $offset, PDO::PARAM_INT);
    $stmt->execute();
}
else {
    $stmt = $pdo->prepare('SELECT * FROM leads ORDER BY created_at DESC LIMIT :lim OFFSET :off');
    $stmt->bindValue(':lim', $per_page, PDO::PARAM_INT);
    $stmt->bindValue(':off', $offset, PDO::PARAM_INT);
    $stmt->execute();
}
$leads = $stmt->fetchAll();
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Lead Management - Admin Panel | Visa Solution Plus</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="https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
    <style>
        *{font-family:'Manrope',sans-serif;}
        body{background:#f0f2f5;min-height:100vh;}
        .admin-header{background:linear-gradient(135deg,#18425a,#123346);color:#fff;padding:20px 0;box-shadow:0 4px 20px rgba(0,0,0,0.2);}
        .admin-header h1{font-weight:800;font-size:1.5rem;}
        .stat-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 15px rgba(0,0,0,0.06);transition:all 0.3s;}
        .stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px rgba(0,0,0,0.1);}
        .stat-card .stat-number{font-size:2rem;font-weight:800;color:#18425a;}
        .stat-card .stat-label{font-size:0.85rem;color:#6c757d;font-weight:600;}
        .stat-card i{font-size:2.5rem;opacity:0.15;color:#18425a;}
        .leads-table{background:#fff;border-radius:16px;box-shadow:0 4px 15px rgba(0,0,0,0.06);overflow:hidden;}
        .leads-table .table{margin-bottom:0;}
        .leads-table .table thead{background:#18425a;color:#fff;}
        .leads-table .table thead th{font-weight:700;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.5px;padding:16px 12px;border:none;}
        .leads-table .table tbody td{padding:14px 12px;font-size:0.88rem;vertical-align:middle;border-color:#f0f2f5;}
        .leads-table .table tbody tr:hover{background:#f8f9ff;}
        .badge-source{font-size:0.7rem;padding:5px 10px;border-radius:20px;}
        .search-box{border:2px solid #e8ecf0;border-radius:12px;padding:12px 18px;transition:all 0.3s;}
        .search-box:focus{border-color:#e94d4e;box-shadow:0 0 0 3px rgba(233,77,78,0.15);}
        .btn-export{background:linear-gradient(135deg,#27ae60,#219653);border:none;border-radius:10px;color:#fff;font-weight:700;padding:10px 20px;transition:all 0.3s;}
        .btn-export:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(39,174,96,0.3);color:#fff;}
        .btn-delete{color:#e94d4e;background:none;border:none;transition:all 0.2s;}
        .btn-delete:hover{background:#fef5f5;border-radius:8px;}
        .pagination .page-link{border:none;color:#18425a;font-weight:600;border-radius:8px;margin:0 2px;}
        .pagination .page-item.active .page-link{background:#e94d4e;color:#fff;}
    </style>
</head>
<body>
    <div class="admin-header">
        <div class="container-fluid px-4">
            <div class="d-flex justify-content-between align-items-center">
                <div class="d-flex align-items-center gap-3">
                    <img src="images/logo.png" alt="Logo" style="height:35px;" onerror="this.style.display='none'">
                    <h1 class="mb-0">Lead Management</h1>
                </div>
                <div class="d-flex align-items-center gap-3">
                    <a href="index.php" class="btn btn-outline-light btn-sm rounded-pill px-3"><i class="fas fa-globe me-1"></i> View Site</a>
                    <a href="?logout=1" class="btn btn-outline-danger btn-sm rounded-pill px-3"><i class="fas fa-sign-out-alt me-1"></i> Logout</a>
                </div>
            </div>
        </div>
    </div>

    <div class="container-fluid px-4 py-4">
        <?php if (isset($_GET['msg']) && $_GET['msg'] === 'deleted'): ?>
            <div class="alert alert-success alert-dismissible fade show rounded-3" role="alert">
                <i class="fas fa-check-circle me-2"></i>Lead deleted successfully.
                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
            </div>
        <?php
endif; ?>

        <!-- STATS -->
        <div class="row g-4 mb-4">
            <?php
$today_count = $pdo->query("SELECT COUNT(*) as c FROM leads WHERE DATE(created_at) = CURDATE()")->fetch()['c'];
$week_count = $pdo->query("SELECT COUNT(*) as c FROM leads WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)")->fetch()['c'];
$month_count = $pdo->query("SELECT COUNT(*) as c FROM leads WHERE created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)")->fetch()['c'];
?>
            <div class="col-6 col-lg-3">
                <div class="stat-card d-flex justify-content-between align-items-center">
                    <div><div class="stat-number"><?php echo $total; ?></div><div class="stat-label">Total Leads</div></div>
                    <i class="fas fa-database"></i>
                </div>
            </div>
            <div class="col-6 col-lg-3">
                <div class="stat-card d-flex justify-content-between align-items-center">
                    <div><div class="stat-number"><?php echo $today_count; ?></div><div class="stat-label">Today</div></div>
                    <i class="fas fa-calendar-day"></i>
                </div>
            </div>
            <div class="col-6 col-lg-3">
                <div class="stat-card d-flex justify-content-between align-items-center">
                    <div><div class="stat-number"><?php echo $week_count; ?></div><div class="stat-label">This Week</div></div>
                    <i class="fas fa-calendar-week"></i>
                </div>
            </div>
            <div class="col-6 col-lg-3">
                <div class="stat-card d-flex justify-content-between align-items-center">
                    <div><div class="stat-number"><?php echo $month_count; ?></div><div class="stat-label">This Month</div></div>
                    <i class="fas fa-chart-line"></i>
                </div>
            </div>
        </div>

        <!-- TOOLBAR -->
        <div class="d-flex flex-wrap justify-content-between align-items-center mb-4 gap-3">
            <form method="GET" class="d-flex gap-2">
                <input type="text" name="search" class="form-control search-box" placeholder="Search leads..." value="<?php echo htmlspecialchars($search); ?>" style="min-width:280px;">
                <button type="submit" class="btn btn-dark rounded-3 px-4 fw-bold"><i class="fas fa-search"></i></button>
                <?php if ($search): ?><a href="view-leads.php" class="btn btn-outline-secondary rounded-3 px-3"><i class="fas fa-times"></i></a><?php
endif; ?>
            </form>
            <a href="?export=csv" class="btn btn-export"><i class="fas fa-file-csv me-2"></i>Export CSV</a>
        </div>

        <!-- LEADS TABLE -->
        <div class="leads-table">
            <?php if (empty($leads)): ?>
                <div class="text-center py-5">
                    <i class="fas fa-inbox fa-3x text-muted mb-3"></i>
                    <h4 class="text-muted fw-bold">No Leads Found</h4>
                    <p class="text-muted"><?php echo $search ? 'No results matching your search.' : 'Leads will appear here once submitted through the website forms.'; ?></p>
                </div>
            <?php
else: ?>
                <div class="table-responsive">
                    <table class="table table-hover">
                        <thead>
                            <tr><th>#</th><th>Name</th><th>Email</th><th>Phone</th><th>Service</th><th>Message</th><th>Source</th><th>Date</th><th>Actions</th></tr>
                        </thead>
                        <tbody>
                            <?php foreach ($leads as $lead): ?>
                            <tr>
                                <td class="fw-bold text-muted"><?php echo $lead['id']; ?></td>
                                <td class="fw-bold"><?php echo htmlspecialchars($lead['name']); ?></td>
                                <td><a href="mailto:<?php echo htmlspecialchars($lead['email']); ?>" class="text-decoration-none"><?php echo htmlspecialchars($lead['email']); ?></a></td>
                                <td><a href="tel:<?php echo htmlspecialchars($lead['phone']); ?>" class="text-decoration-none"><?php echo htmlspecialchars($lead['phone']); ?></a></td>
                                <td><span class="badge bg-primary badge-source"><?php echo htmlspecialchars($lead['service'] ?? 'N/A'); ?></span></td>
                                <td class="text-muted small" style="max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;" title="<?php echo htmlspecialchars($lead['message'] ?? ''); ?>"><?php echo htmlspecialchars($lead['message'] ?? '—'); ?></td>
                                <td><span class="badge bg-info badge-source"><?php echo htmlspecialchars($lead['source_page'] ?? 'homepage'); ?></span></td>
                                <td class="small text-muted"><?php echo date('M d, Y h:i A', strtotime($lead['created_at'])); ?></td>
                                <td><a href="?delete=<?php echo $lead['id']; ?><?php echo $search ? '&search=' . urlencode($search) : ''; ?>" class="btn-delete p-2" onclick="return confirm('Delete this lead?');" title="Delete"><i class="fas fa-trash-alt"></i></a></td>
                            </tr>
                            <?php
    endforeach; ?>
                        </tbody>
                    </table>
                </div>
                <?php if ($total_pages > 1): ?>
                <div class="d-flex justify-content-between align-items-center p-3 border-top">
                    <p class="text-muted small mb-0">Showing <?php echo $offset + 1; ?>-<?php echo min($offset + $per_page, $total); ?> of <?php echo $total; ?> leads</p>
                    <nav>
                        <ul class="pagination pagination-sm mb-0">
                            <?php if ($page > 1): ?><li class="page-item"><a class="page-link" href="?page=<?php echo $page - 1; ?><?php echo $search ? '&search=' . urlencode($search) : ''; ?>">&laquo;</a></li><?php
        endif; ?>
                            <?php for ($i = max(1, $page - 2); $i <= min($total_pages, $page + 2); $i++): ?>
                                <li class="page-item <?php echo $i === $page ? 'active' : ''; ?>"><a class="page-link" href="?page=<?php echo $i; ?><?php echo $search ? '&search=' . urlencode($search) : ''; ?>"><?php echo $i; ?></a></li>
                            <?php
        endfor; ?>
                            <?php if ($page < $total_pages): ?><li class="page-item"><a class="page-link" href="?page=<?php echo $page + 1; ?><?php echo $search ? '&search=' . urlencode($search) : ''; ?>">&raquo;</a></li><?php
        endif; ?>
                        </ul>
                    </nav>
                </div>
                <?php
    endif; ?>
            <?php
endif; ?>
        </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
