<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

session_start();
if (!isset($_SESSION['admin'])) {
    header("Location: admin_login.php");
    exit();
}

include "db.php";

// Helper: check if table exists
function table_exists($conn, $table) {
    $t = $conn->real_escape_string($table);
    $r = $conn->query("SHOW TABLES LIKE '$t'");
    return ($r && $r->num_rows > 0);
}

// Request tables
$requestTables = [
    "transactions", "bvn_verification_logs", "bypass_requests", "data_transactions",
    "delink", "ipe_requests", "modification_requests", "nin_results",
    "personalization", "validation_requests", "agent_registration", "nin_result_new",
    "service_profits", "dashboard_services", "data_plans", "bvn_results",
    "bvn_modification_transactions", "api_prices", "api_keys", "api_transactions",
    "transaction", "vip_users", "referral_earnings", "bvn_api_responses",
    "enrolment_requests", "zepa_nin_verify", "agents", "nin_demo_simple",
    "vnin_transactions", "bvn_phone_logs", "unifiy_new", "unifiy_phone",
    "nin_details", "ipe_request", "nin_validation", "admin", "self_delink",
    "balance", "nin_request", "popup_message", "smod_requests",
    "nonfresh_requests", "nimc_requests", "refund_transactions","enroll_requests","all_transactions","all_transaction"
];

// Fetch counts safely
$counts = [];
foreach ($requestTables as $t) {
    $counts[$t] = 0;
    if (table_exists($conn, $t)) {
        $res = $conn->query("SELECT COUNT(*) AS c FROM `$t`");
        if ($res) {
            $r = $res->fetch_assoc();
            if (isset($r['c'])) $counts[$t] = (int)$r['c'];
        }
    }
}

// Total transactions
$total_transactions = array_sum($counts);

// Users count
$users_count = 0;
if (table_exists($conn, 'customers')) {
    $res = $conn->query("SELECT COUNT(*) AS c FROM `customers`");
    if ($res) {
        $r = $res->fetch_assoc();
        if (isset($r['c'])) $users_count = (int)$r['c'];
    }
}

// Total balance
$total_balance = 0.00;
if (table_exists($conn, 'total_users_balance')) {
    $res = $conn->query("SELECT SUM(total_amount) AS s FROM `total_users_balance`");
    if ($res) {
        $r = $res->fetch_assoc();
        if (isset($r['s'])) $total_balance = (float)$r['s'];
    }
}

$conn->close();

function fmt_int($n) { return number_format((int)$n); }
function fmt_money($x) { return number_format((float)$x, 2); }
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Dashboard | AsoVerify</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<script src="https://kit.fontawesome.com/a2e0e6d05a.js" crossorigin="anonymous"></script>

<style>
    body {
        background: linear-gradient(135deg, #00bfff, #0077b6);
        font-family: Arial, sans-serif;
        min-height: 100vh;
    }

    header {
        background-color: rgba(0, 0, 50, 0.85);
        backdrop-filter: blur(8px);
    }

    .card {
        transition: all 0.25s ease;
        min-height: 135px;
    }

    .card:hover {
        transform: translateY(-6px);
        box-shadow: 0 12px 25px rgba(0, 0, 0, 0.35);
    }

    .card-title {
        word-break: break-word;
        line-height: 1.2;
    }

    @media (max-width: 640px) {
        .card {
            min-height: 120px;
        }

        .card:hover {
            transform: none;
        }
    }
</style>
</head>
<body class="text-white">

<header class="sticky top-0 z-50 px-3 py-4 sm:px-6 sm:py-5 flex flex-col sm:flex-row justify-between items-center gap-3 border-b border-green-700 shadow-lg">
    <h1 class="text-lg sm:text-2xl font-bold text-center sm:text-left">
        <i class="fa-solid fa-shield-halved mr-2 text-white"></i>Admin Dashboard
    </h1>

    <div class="flex flex-col sm:flex-row items-center gap-2 sm:gap-4 w-full sm:w-auto">
        <span class="text-white text-sm sm:text-base text-center">
            <i class="fa-solid fa-user mr-1"></i><?php echo htmlspecialchars($_SESSION['admin']); ?>
        </span>
        <a href="admin_logout.php" class="bg-green-600 hover:bg-green-700 px-4 py-2 rounded-lg font-semibold shadow-md transition text-sm sm:text-base w-full sm:w-auto text-center">
            Logout
        </a>
    </div>
</header>

<main class="px-2 py-4 sm:px-4 sm:py-6 lg:px-8 lg:py-8">
    <!-- Mobile: 3 per row | Desktop: 4 per row -->
    <div class="grid grid-cols-3 lg:grid-cols-4 gap-3 sm:gap-4 lg:gap-6">

<?php
$cards = [
    ['title'=>'NIN ENROLMENT','count'=>$counts['enrolment_requests'],'icon'=>'fa-check-circle','link'=>'admin_enrolment_requests.php','color'=>'bg-gradient-to-r from-green-500 to-green-900'],
    ['title'=>'MAIN VERIFY AGENT','count'=>$counts['nimc_requests'],'icon'=>'fa-check-circle','link'=>'mainverify.php','color'=>'bg-gradient-to-r from-green-300 to-green-500'],
    ['title'=>'NEW ENROLL','count'=>$counts['enroll_requests'],'icon'=>'fa-id-badge','link'=>'admin_enrolment_requests1.php','color'=>'bg-gradient-to-r from-purple-400 to-purple-700'],
    ['title'=>'ENROLMENT SENT','count'=>$counts['enrolment_requests'],'icon'=>'fa-check-circle','link'=>'admin_enroll.php','color'=>'bg-gradient-to-r from-yellow-300 to-yellow-600'],
    ['title'=>'ENROLMENT APPROVED','count'=>$counts['enrolment_requests'],'icon'=>'fa-check-circle','link'=>'admin_enroll1.php','color'=>'bg-gradient-to-r from-green-700 to-green-800'],
    ['title'=>'NIN USER COUNT','count'=>$counts['enrolment_requests'],'icon'=>'fa-check-circle','link'=>'admin_enrolment_summary.php','color'=>'bg-gradient-to-r from-green-500 to-green-900'],
    ['title'=>'NIN AGENT','count'=>$counts['agents'],'icon'=>'fa-check-circle','link'=>'admin_add_agent.php','color'=>'bg-gradient-to-r from-green-500 to-green-900'],
    ['title'=>'MESSAGE TO USER','count'=>$counts['popup_message'],'icon'=>'fa-check-circle','link'=>'admin_demo.php','color'=>'bg-gradient-to-r from-yellow-300 to-gray-500'],
    ['title'=>'USERS WITH CASH','count'=>$counts['balance'],'icon'=>'fa-check-circle','link'=>'wallet_users.php','color'=>'bg-gradient-to-r from-purple-700 to-purple-900'],
    ['title'=>'UNIFY TRANSACTIONS','count'=>$counts['all_transactions'],'icon'=>'fa-check-circle','link'=>'admin_nindetails.php','color'=>'bg-gradient-to-r from-purple-700 to-purple-900'],
    ['title'=>'Validation Admin','count'=>$counts['validation_requests'],'icon'=>'fa-check-circle','link'=>'../admin/admin_validation.php','color'=>'bg-gradient-to-r from-blue-500 to-blue-700'],
    ['title'=>'Validation refund','count'=>$counts['refund_transactions'],'icon'=>'fa-check-circle','link'=>'../admin/refund.php','color'=>'bg-gradient-to-r from-blue-800 to-blue-900'],
    ['title'=>'DELINK ADMIN','count'=>$counts['self_delink'],'icon'=>'fa-check-circle','link'=>'../admin/admin_delink.php','color'=>'bg-gradient-to-r from-blue-500 to-blue-700'],
    ['title'=>'API IPE','count'=>$counts['ipe_request'],'icon'=>'fa-check-circle','link'=>'../admin/admin_ipe2.php','color'=>'bg-gradient-to-r from-red-200 to-blue-500'],
    ['title'=>'Status Check','count'=>$counts['validation_requests'],'icon'=>'fa-headset','link'=>'check_status.php','color'=>'bg-gradient-to-r from-blue-500 to-blue-700'],
    ['title'=>'PAYMENT','count'=>$counts['transactions'],'icon'=>'fa-cogs','link'=>'../payment.php','color'=>'bg-gradient-to-r from-pink-500 to-pink-700'],
    ['title'=>'Funding Admin','count'=>$counts['transaction'],'icon'=>'fa-money-bill-wave','link'=>'../admin/users_balance.php','color'=>'bg-gradient-to-r from-green-500 to-green-700'],
    ['title'=>'SECOND MOD','count'=>$counts['smod_requests'],'icon'=>'fa-check-circle','link'=>'admin_modify2.php','color'=>'bg-gradient-to-r from-red-300 to-gray-500'],
    ['title'=>'NONFRESH MOD','count'=>$counts['nonfresh_requests'],'icon'=>'fa-check-circle','link'=>'admin_nonfresh.php','color'=>'bg-gradient-to-r from-red-300 to-gray-500'],
    ['title'=>'Modification Admin','count'=>$counts['modification_requests'],'icon'=>'fa-file-pen','link'=>'../admin/admin_mod.php','color'=>'bg-gradient-to-r from-blue-500 to-blue-700'],
    ['title'=>'Mod pendin','count'=>$counts['modification_requests'],'icon'=>'fa-file-pen','link'=>'../admin/admin_mod2.php','color'=>'bg-gradient-to-r from-blue-500 to-blue-700'],
    ['title'=>'Personalization Admin','count'=>$counts['personalization'],'icon'=>'fa-id-card','link'=>'admin_personalize.php','color'=>'bg-gradient-to-r from-pink-500 to-pink-700'],
    ['title'=>'IPE Clearance','count'=>$counts['ipe_requests'],'icon'=>'fa-certificate','link'=>'../admin/admin_ipe5.php','color'=>'bg-gradient-to-r from-yellow-400 to-yellow-600 text-black'],
    ['title'=>'BVN PLASTIC2','count'=>$counts['bvn_api_responses'],'icon'=>'fa-chart-line','link'=>'bvn_admin.php','color'=>'bg-gradient-to-r from-yellow-500 to-yellow-700'],
    ['title'=>'Manage Users','count'=>$users_count,'icon'=>'fa-users','link'=>'../admin/users.php','color'=>'bg-gradient-to-r from-pink-500 to-pink-700'],
    ['title'=>'Transactions','count'=>$counts['all_transaction'],'icon'=>'fa-exchange-alt','link'=>'../admin/transaction.php','color'=>'bg-gradient-to-r from-indigo-500 to-indigo-700'],
    ['title'=>'USERS MANAGER','count'=>"₦".fmt_money($total_balance),'icon'=>'fa-wallet','link'=>'admin_users.php','color'=>'bg-gradient-to-r from-green-600 to-green-900'],
    ['title'=>'BVN ADMIN','count'=>$counts['bvn_verification_logs'],'icon'=>'fa-plug','link'=>'admin_bvn.php','color'=>'bg-gradient-to-r from-red-500 to-red-700 text-black'],
    ['title'=>'BVN PHONE ADMIN','count'=>$counts['bvn_phone_logs'],'icon'=>'fa-plug','link'=>'bvn_admin_phone.php','color'=>'bg-gradient-to-r from-red-500 to-red-700 text-black'],
    ['title'=>'NIN&PHONE','count'=>$counts['nin_result_new'],'icon'=>'fa-envelope','link'=>'nin_results_admin.php','color'=>'bg-gradient-to-r from-red-500 to-red-700'],
    ['title'=>'VNIN ADMIN','count'=>$counts['vnin_transactions'],'icon'=>'fa-check-circle','link'=>'vnin_admin.php','color'=>'bg-gradient-to-r from-green-500 to-green-900'],
    ['title'=>'PROFITS CONTROL','count'=>$total_transactions,'icon'=>'fa-gear','link'=>'profit _summary.php','color'=>'bg-gradient-to-r from-yellow-700 to-yellow-900'],
    ['title'=>'MANAGE SERVICE','count'=>$counts['dashboard_services'],'icon'=>'fa-gear','link'=>'manage_services.php','color'=>'bg-gradient-to-r from-yellow-700 to-yellow-900'],
    ['title'=>'BVN MOD ADMIN','count'=>$counts['bvn_modification_transactions'],'icon'=>'fa-cogs','link'=>'admin_bvn_modifications.php','color'=>'bg-gradient-to-r from-pink-500 to-pink-700'],
    ['title'=>'API PRICE CONT','count'=>$counts['api_prices'],'icon'=>'fa-certificate','link'=>'api_prices.php','color'=>'bg-gradient-to-r from-yellow-400 to-yellow-800 text-black'],
    ['title'=>'API USERS CONT','count'=>$counts['api_keys'],'icon'=>'fa-certificate','link'=>'admin_api_users.php','color'=>'bg-gradient-to-r from-yellow-400 to-yellow-600 text-black'],
    ['title'=>'API TRANSACTION','count'=>$counts['api_transactions'],'icon'=>'fa-id-badge','link'=>'api_transactions_report.php','color'=>'bg-gradient-to-r from-purple-500 to-purple-700'],
    ['title'=>'BVN USERS','count'=>$counts['agent_registration'],'icon'=>'fa-check-circle','link'=>'bvn_agent.php','color'=>'bg-gradient-to-r from-blue-700 to-blue-900'],
    ['title'=>'VIP USERS','count'=>$counts['vip_users'],'icon'=>'fa-check-circle','link'=>'vip_users.php','color'=>'bg-gradient-to-r from-red-700 to-red-900'],
    ['title'=>'REFERRAL USERS','count'=>$counts['referral_earnings'],'icon'=>'fa-check-circle','link'=>'referral_admin.php','color'=>'bg-gradient-to-r from-purple-700 to-purple-900'],
    ['title'=>'IPE STATUS CHEAK','count'=>$counts['ipe_requests'],'icon'=>'fa-check-circle','link'=>'admin_ipe_requests.php','color'=>'bg-gradient-to-r from-purple-700 to-purple-900'],
    ['title'=>'PRICE MANAGER','count'=>$counts['admin'],'icon'=>'fa-check-circle','link'=>'price_maneger.php','color'=>'bg-gradient-to-r from-purple-700 to-purple-900'],
];

foreach ($cards as $card) {
    $textColor = (isset($card['color']) && strpos($card['color'], 'text-black') !== false) ? 'text-black' : 'text-white';

    echo '<a href="'.$card['link'].'" class="card '.$card['color'].' rounded-xl p-3 sm:p-4 lg:p-5 flex flex-col items-center justify-center shadow-lg '.$textColor.' text-center">';
    echo '<i class="fa-solid '.$card['icon'].' text-lg sm:text-2xl lg:text-4xl mb-2 sm:mb-3"></i>';
    echo '<h3 class="card-title font-semibold mb-1 text-[10px] sm:text-sm lg:text-lg">'.$card['title'].'</h3>';
    echo '<span class="text-sm sm:text-xl lg:text-2xl font-bold">'.$card['count'].'</span>';
    echo '</a>';
}
?>

    </div>

    <div class="text-center mt-8 sm:mt-10 text-white text-xs sm:text-sm">
        © <?php echo date('Y'); ?> AsoVerify Admin Panel
    </div>
</main>

</body>
</html>
