<?php
declare(strict_types=1);

$baseDir = __DIR__;
$includesDir = $baseDir . '/includes';

foreach (['auth.php', 'config.php'] as $requiredFile) {
    $fullPath = $includesDir . '/' . $requiredFile;
    if (file_exists($fullPath)) {
        require_once $fullPath;
    }
}

if (!function_exists('nay_resolve_db')) {
    function nay_resolve_db() {
        global $conn, $mysqli, $db, $link;
        foreach ([$conn ?? null, $mysqli ?? null, $db ?? null, $link ?? null] as $candidate) {
            if ($candidate instanceof mysqli) {
                return $candidate;
            }
        }
        return null;
    }
}

if (!function_exists('nay_table_exists')) {
    function nay_table_exists(?mysqli $db, string $table): bool {
        if (!$db || trim($table) === '') {
            return false;
        }
        $safe = $db->real_escape_string($table);
        $res = @$db->query("SHOW TABLES LIKE '{$safe}'");
        return $res instanceof mysqli_result && $res->num_rows > 0;
    }
}

if (!function_exists('nay_first_existing_table')) {
    function nay_first_existing_table(?mysqli $db, array $tables): ?string {
        foreach ($tables as $table) {
            if (nay_table_exists($db, $table)) {
                return $table;
            }
        }
        return null;
    }
}

if (!function_exists('nay_count_rows')) {
    function nay_count_rows(?mysqli $db, ?string $table, string $where = '1=1'): int {
        if (!$db || !$table) {
            return 0;
        }
        $sql = "SELECT COUNT(*) AS c FROM `{$table}` WHERE {$where}";
        $res = @$db->query($sql);
        if ($res instanceof mysqli_result) {
            $row = $res->fetch_assoc();
            return (int)($row['c'] ?? 0);
        }
        return 0;
    }
}

if (!function_exists('nay_sum_column')) {
    function nay_sum_column(?mysqli $db, ?string $table, string $column, string $where = '1=1'): float {
        if (!$db || !$table) {
            return 0;
        }
        $sql = "SELECT COALESCE(SUM(`{$column}`),0) AS s FROM `{$table}` WHERE {$where}";
        $res = @$db->query($sql);
        if ($res instanceof mysqli_result) {
            $row = $res->fetch_assoc();
            return (float)($row['s'] ?? 0);
        }
        return 0;
    }
}

if (!function_exists('nay_fetch_all')) {
    function nay_fetch_all(?mysqli $db, string $sql): array {
        if (!$db) {
            return [];
        }
        $res = @$db->query($sql);
        if (!$res instanceof mysqli_result) {
            return [];
        }
        $rows = [];
        while ($row = $res->fetch_assoc()) {
            $rows[] = $row;
        }
        return $rows;
    }
}

if (!function_exists('nay_format_iqd')) {
    function nay_format_iqd(float $amount): string {
        return number_format($amount, 0) . ' د.ع';
    }
}

$db = nay_resolve_db();

$tables = [
    'categories'   => nay_first_existing_table($db, ['categories']),
    'productTypes' => nay_first_existing_table($db, ['product_types', 'ptype']),
    'brands'       => nay_first_existing_table($db, ['brands', 'companies']),
    'products'     => nay_first_existing_table($db, ['products']),
    'provinces'    => nay_first_existing_table($db, ['provinces']),
    'customers'    => nay_first_existing_table($db, ['customers']),
    'promoCodes'   => nay_first_existing_table($db, ['promo_codes', 'promocodes']),
    'influencers'  => nay_first_existing_table($db, ['influencers']),
    'orders'       => nay_first_existing_table($db, ['orders']),
    'admins'       => nay_first_existing_table($db, ['admins', 'admin_users', 'users']),
];

$offersTables = [
    nay_first_existing_table($db, ['individual_offers']),
    nay_first_existing_table($db, ['bundle_offers']),
    nay_first_existing_table($db, ['quantity_offers']),
    nay_first_existing_table($db, ['company_offers']),
];
$offersTables = array_values(array_filter(array_unique($offersTables)));
$offersCount = 0;
foreach ($offersTables as $offerTable) {
    $offersCount += nay_count_rows($db, $offerTable);
}

$stats = [
    ['label' => 'الطلبات',       'value' => nay_count_rows($db, $tables['orders']),      'sub' => 'إجمالي الطلبات بالمنظومة'],
    ['label' => 'المنتجات',      'value' => nay_count_rows($db, $tables['products']),    'sub' => 'عدد المنتجات الحالية'],
    ['label' => 'الزبائن',       'value' => nay_count_rows($db, $tables['customers']),   'sub' => 'كل حسابات الزبائن'],
    ['label' => 'المؤثرين',      'value' => nay_count_rows($db, $tables['influencers']), 'sub' => 'المؤثرين المسجلين'],
    ['label' => 'أكواد الخصم',   'value' => nay_count_rows($db, $tables['promoCodes']),  'sub' => 'كل الأكواد المضافة'],
    ['label' => 'البراندات',     'value' => nay_count_rows($db, $tables['brands']),      'sub' => 'براندات / شركات'],
    ['label' => 'الأقسام',       'value' => nay_count_rows($db, $tables['categories']),  'sub' => 'الأقسام الرئيسية'],
    ['label' => 'العروض',        'value' => $offersCount,                                  'sub' => 'مجموع كل أنواع العروض'],
];

$recentOrders = [];
if ($tables['orders']) {
    $recentOrders = nay_fetch_all(
        $db,
        "SELECT id, order_number, customer_name, order_status, total_amount, created_at
         FROM `{$tables['orders']}`
         ORDER BY id DESC
         LIMIT 8"
    );
}

$lowStock = [];
if ($tables['products']) {
    $lowStock = nay_fetch_all(
        $db,
        "SELECT id, name, sku, quantity
         FROM `{$tables['products']}`
         WHERE quantity <= 5
         ORDER BY quantity ASC, id DESC
         LIMIT 8"
    );
}

$oldFiles = [];
$oldCandidates = [
    $baseDir . '/products/variants_old.php',
    $baseDir . '/products/functions_old.php',
    $baseDir . '/products/inventory_old.php',
    $baseDir . '/includes/backup',
];
foreach ($oldCandidates as $item) {
    if (file_exists($item)) {
        $oldFiles[] = str_replace($baseDir . '/', '', $item);
    }
}

$quickLinks = [
    ['href' => '/app/admin/products/index.php',     'title' => 'المنتجات',      'sub' => 'إضافة وتعديل وإدارة المخزون'],
    ['href' => '/app/admin/orders/index.php',       'title' => 'الطلبات',       'sub' => 'متابعة الحالات والفواتير'],
    ['href' => '/app/admin/offers/index.php',       'title' => 'العروض',        'sub' => 'فردي + باقات + كمية + شركة'],
    ['href' => '/app/admin/promo_codes/index.php',  'title' => 'أكواد الخصم',   'sub' => 'إدارة أكواد العملاء والمؤثرين'],
    ['href' => '/app/admin/influencers/index.php',  'title' => 'المؤثرين',      'sub' => 'إدارة المؤثرين ودفعاتهم'],
    ['href' => '/app/admin/settings/index.php',     'title' => 'الإعدادات',      'sub' => 'الإعدادات متعددة الصفحات'],
];

$moduleHealth = [
    'ربط السايدبار'        => file_exists($includesDir . '/sidebar.php') ? 'جاهز' : 'ناقص',
    'صفحة الداشبورد'       => file_exists($baseDir . '/index.php') ? 'جاهز' : 'ناقص',
    'وحدة العروض'          => is_dir($baseDir . '/offers') ? 'جاهز' : 'تحتاج رفع',
    'ملف CSS للداشبورد'    => file_exists($baseDir . '/assets/css/dashboard.css') ? 'جاهز' : 'ناقص',
    'مجلد المنتجات القديم' => !empty($oldFiles) ? 'بحاجة تنظيف' : 'نظيف',
];

?><!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="utf-8">
    <title>داشبورد الإدارة | Nay Store</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/app/admin/assets/css/admin.css">
    <link rel="stylesheet" href="/app/admin/assets/css/dashboard.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css">
</head>
<body class="nay-dashboard-page">
<div class="nay-dashboard-layout">
    <?php
    $sidebarFile = $includesDir . '/sidebar.php';
    if (file_exists($sidebarFile)) {
        include $sidebarFile;
    }
    ?>

    <main class="nay-dashboard-content">
        <div class="nay-dashboard-main">
            <section class="nay-dashboard-hero">
                <div>
                    <h1>داشبورد الإدارة</h1>
                    <p>
                        هاي الصفحة صارت نقطة الدخول الرئيسية للإدمن، وتجمع إحصائيات سريعة، اختصارات للوحدات،
                        وحالة البنية الحالية حتى تعرف مباشرة شنو مكتمل وشنو بعده يحتاج مراجعة.
                    </p>
                </div>
                <div class="nay-actions">
                    <a class="nay-btn primary" href="/app/admin/orders/create.php"><i class="fa-solid fa-plus"></i> إنشاء طلب</a>
                    <a class="nay-btn" href="/app/admin/products/create.php"><i class="fa-solid fa-box-open"></i> إضافة منتج</a>
                    <a class="nay-btn" href="/app/admin/offers/create.php"><i class="fa-solid fa-badge-percent"></i> إضافة عرض</a>
                </div>
            </section>

            <section class="nay-stats-grid">
                <?php foreach ($stats as $stat): ?>
                    <div class="nay-card">
                        <div class="nay-stat-label"><?= htmlspecialchars($stat['label']) ?></div>
                        <div class="nay-stat-value"><?= number_format((int)$stat['value']) ?></div>
                        <div class="nay-stat-sub"><?= htmlspecialchars($stat['sub']) ?></div>
                    </div>
                <?php endforeach; ?>
            </section>

            <section class="nay-grid-two">
                <div class="nay-card">
                    <h3>آخر الطلبات</h3>
                    <?php if (!empty($recentOrders)): ?>
                        <div class="nay-table-wrap">
                            <table class="nay-table">
                                <thead>
                                <tr>
                                    <th>#</th>
                                    <th>رقم الطلب</th>
                                    <th>الزبون</th>
                                    <th>الحالة</th>
                                    <th>المبلغ</th>
                                    <th>التاريخ</th>
                                </tr>
                                </thead>
                                <tbody>
                                <?php foreach ($recentOrders as $order): ?>
                                    <tr>
                                        <td><?= (int)($order['id'] ?? 0) ?></td>
                                        <td><?= htmlspecialchars((string)($order['order_number'] ?? '-')) ?></td>
                                        <td><?= htmlspecialchars((string)($order['customer_name'] ?? '-')) ?></td>
                                        <td><span class="nay-badge info"><?= htmlspecialchars((string)($order['order_status'] ?? '-')) ?></span></td>
                                        <td><?= nay_format_iqd((float)($order['total_amount'] ?? 0)) ?></td>
                                        <td><?= htmlspecialchars((string)($order['created_at'] ?? '-')) ?></td>
                                    </tr>
                                <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                    <?php else: ?>
                        <div class="nay-empty">ماكو بيانات طلبات حالياً، أو جدول الطلبات بعده ما متربط بشكل نهائي.</div>
                    <?php endif; ?>
                </div>

                <div class="nay-card">
                    <h3>اختصارات سريعة</h3>
                    <div class="nay-links-grid">
                        <?php foreach ($quickLinks as $link): ?>
                            <a class="nay-quick-link" href="<?= htmlspecialchars($link['href']) ?>">
                                <?= htmlspecialchars($link['title']) ?>
                                <small><?= htmlspecialchars($link['sub']) ?></small>
                            </a>
                        <?php endforeach; ?>
                    </div>
                </div>
            </section>

            <section class="nay-grid-three">
                <div class="nay-card">
                    <h3>منتجات قليلة المخزون</h3>
                    <?php if (!empty($lowStock)): ?>
                        <div class="nay-list">
                            <?php foreach ($lowStock as $product): ?>
                                <div class="nay-list-item">
                                    <div>
                                        <strong><?= htmlspecialchars((string)($product['name'] ?? '-')) ?></strong>
                                        <div class="nay-muted"><?= htmlspecialchars((string)($product['sku'] ?? 'بدون SKU')) ?></div>
                                    </div>
                                    <span class="nay-badge warn">الكمية: <?= (int)($product['quantity'] ?? 0) ?></span>
                                </div>
                            <?php endforeach; ?>
                        </div>
                    <?php else: ?>
                        <div class="nay-empty">ماكو منتجات قليلة حالياً، أو حقل الكمية يحتاج مراجعة بالجدول.</div>
                    <?php endif; ?>
                </div>

                <div class="nay-card">
                    <h3>حالة الوحدات</h3>
                    <div class="nay-list">
                        <?php foreach ($moduleHealth as $name => $state): ?>
                            <div class="nay-list-item">
                                <span><?= htmlspecialchars($name) ?></span>
                                <span class="nay-badge <?= $state === 'جاهز' ? 'success' : ($state === 'تحتاج رفع' ? 'warn' : 'info') ?>">
                                    <?= htmlspecialchars($state) ?>
                                </span>
                            </div>
                        <?php endforeach; ?>
                    </div>
                </div>

                <div class="nay-card">
                    <h3>إصلاحات مقترحة سريعاً</h3>
                    <div class="nay-list">
                        <div class="nay-list-item"><span>توحيد كل روابط البداية على index.php داخل الوحدات</span><span class="nay-badge info">تنظيم</span></div>
                        <div class="nay-list-item"><span>تنظيف ملفات old والـ backup بعد أخذ نسخة</span><span class="nay-badge warn">مهم</span></div>
                        <div class="nay-list-item"><span>ربط العروض مع الطلبات قبل المراجعة النهائية</span><span class="nay-badge info">التالي</span></div>
                        <div class="nay-list-item"><span>فحص صلاحيات uploads و error_log</span><span class="nay-badge info">فحص</span></div>
                    </div>
                </div>
            </section>

            <?php if (!empty($oldFiles)): ?>
                <section class="nay-card" style="margin-top:16px;">
                    <h3>ملفات قديمة تحتاج قرار</h3>
                    <div class="nay-list">
                        <?php foreach ($oldFiles as $oldFile): ?>
                            <div class="nay-list-item">
                                <span><?= htmlspecialchars($oldFile) ?></span>
                                <span class="nay-badge warn">قديم</span>
                            </div>
                        <?php endforeach; ?>
                    </div>
                </section>
            <?php endif; ?>
        </div>
    </main>
</div>
</body>
</html>
