<?php

declare(strict_types=1);
require_once __DIR__ . '/../app/config/bootstrap.php';
require_once __DIR__ . '/../app/core/Auth.php';
require_once __DIR__ . '/../app/core/AdminLayout.php';
require_once __DIR__ . '/../app/controllers/AdminController.php';
Auth::requireAdmin();
$data = (new AdminController())->dashboard();
$stats = $data['stats'];
$salesSeries = $data['sales_series'] ?? [];
$lowStock = $data['low_stock'] ?? [];
$roleCounts = $data['role_counts'] ?? [];
?>
<!doctype html>
<html lang="fa" dir="rtl">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="<?= htmlspecialchars(assetPath('/assets/css/admin.css')) ?>">
    <title>داشبورد</title>
</head>

<body>
    <div class="admin-wrap">
        <?php renderAdminSidebar('dashboard'); ?>
        <main class="content">
            <h1>داشبورد مدیریت</h1>
            <div class="kpis">
                <div class="kpi"><strong><?= (int)$stats['orders_count'] ?></strong>
                    <p>کل سفارش‌ها</p>
                </div>
                <div class="kpi"><strong><?= (int)$stats['products_count'] ?></strong>
                    <p>محصول فعال</p>
                </div>
                <div class="kpi"><strong><?= (int)$stats['users_count'] ?></strong>
                    <p>کاربران</p>
                </div>
                <div class="kpi"><strong><?= (int)$stats['paid_orders_count'] ?></strong>
                    <p>پرداخت موفق (نمونه اخیر)</p>
                </div>
                <div class="kpi"><strong><?= number_format((float)$stats['sales_total']) ?></strong>
                    <p>جمع مبلغ نمونه سفارش‌های اخیر</p>
                </div>
            </div>
            <div class="admin-panels-grid">
                <div class="chart-card">
                    <h3>روند فروش ۷ روز اخیر</h3><canvas id="salesChart" width="840" height="220"></canvas>
                </div>
                <div class="panel-card">
                    <h3>توزیع نقش کاربران</h3>
                    <ul class="role-list">
                        <li>مدیر سیستم: <strong><?= (int)($roleCounts['admin'] ?? 0) ?></strong></li>
                        <li>سرپرست: <strong><?= (int)($roleCounts['manager'] ?? 0) ?></strong></li>
                        <li>مشتری: <strong><?= (int)($roleCounts['customer'] ?? 0) ?></strong></li>
                    </ul>
                </div>
            </div>
            <div class="panel-card">
                <h3>هشدار موجودی کم (≤۵)</h3>
                <?php if (!$lowStock): ?>
                    <p>کالای در خطر اتمام وجود ندارد.</p>
                <?php else: ?>
                    <table class="admin-table compact">
                        <thead><tr><th>محصول</th><th>موجودی</th><th>شناسه پیگیری</th></tr></thead>
                        <tbody>
                        <?php foreach ($lowStock as $ls): ?>
                            <tr>
                                <td><?= htmlspecialchars((string)$ls['title']) ?></td>
                                <td><?= (int)$ls['stock'] ?></td>
                                <td><code><?= htmlspecialchars((string)($ls['tracking_code'] ?? '-')) ?></code></td>
                            </tr>
                        <?php endforeach; ?>
                        </tbody>
                    </table>
                <?php endif; ?>
            </div>
            <div class="panel-card">
                <h3>آخرین سفارش‌ها</h3>
                <table class="admin-table compact">
                    <thead>
                    <tr><th>#</th><th>شناسه پیگیری</th><th>مشتری</th><th>مبلغ</th><th>وضعیت</th></tr>
                    </thead>
                    <tbody>
                    <?php foreach ($data['orders'] as $o): ?>
                        <tr>
                            <td><?= (int)$o['id'] ?></td>
                            <td><code><?= htmlspecialchars((string)($o['order_tracking_id'] ?? '-')) ?></code></td>
                            <td><?= htmlspecialchars((string)$o['customer_name']) ?></td>
                            <td><?= number_format((float)$o['total_amount']) ?></td>
                            <td><?= htmlspecialchars((string)$o['status']) ?></td>
                        </tr>
                    <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        </main>
    </div>
    <script>
        window.__SALES_SERIES__ = <?= json_encode($salesSeries, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>;
    </script>
    <script src="<?= htmlspecialchars(assetPath('/assets/js/admin.js')) ?>" defer></script>
</body>

</html>
<?php Performance::finish('admin.dashboard'); ?>
