<?php
require_once __DIR__ . '/../includes/config.php';
require_once __DIR__ . '/../includes/auth.php';
require_once __DIR__ . '/../includes/module_hub_helpers.php';
require_once __DIR__ . '/functions.php';

$db = mkt_db();
$page_title = 'محرك التسويق';
$flash = get_flash();
$schemaReady = mkt_schema_ready($db);
$stats = mkt_fetch_stats($db);
$campaigns = $schemaReady ? mkt_fetch_campaigns($db, 100) : [];
$recentRuns = $schemaReady ? mkt_fetch_runs($db, 0, 10) : [];
$dueCampaigns = $schemaReady ? mkt_fetch_due_scheduled_campaigns($db, 10) : [];

require_once __DIR__ . '/../includes/header.php';
require_once __DIR__ . '/../includes/sidebar.php';
?>
<div class="nay-dashboard-page">
    <div class="nay-dashboard-main">
        <div class="nay-dashboard-hero">
            <div>
                <h1>محرك التسويق</h1>
                <p>إدارة الحملات اليدوية والمجدولة من مكان واحد، مع ملخص سريع للتشغيلات والكوبونات والإشعارات والنقاط.</p>
            </div>
            <div class="nay-actions">
                <a class="nay-btn primary" href="create.php"><i class="fa-solid fa-plus"></i> إضافة حملة</a>
                <a class="nay-btn" href="templates.php"><i class="fa-solid fa-layer-group"></i> القوالب</a>
                <a class="nay-btn" href="logs.php"><i class="fa-solid fa-clock-rotate-left"></i> السجل</a>
                <a class="nay-btn" href="cron.php" target="_blank"><i class="fa-solid fa-rotate"></i> تشغيل المجدول الآن</a>
            </div>
        </div>

        <?php if ($flash): ?>
            <div class="<?= mkt_flash_class((string)$flash['type']) ?>" style="margin-bottom:16px"><?= mkt_h($flash['message']) ?></div>
        <?php endif; ?>

        <?php if (!$schemaReady): ?>
            <div class="flash flash-error" style="margin-bottom:16px">الموديول غير جاهز بعد. نفّذ ملف SQL: <strong>/app/admin/sql/marketing_engine_stage2b_patch.sql</strong> ثم أعد فتح الصفحة.</div>
        <?php endif; ?>

        <div class="nay-stats-grid">
            <div class="nay-card"><div class="nay-stat-label">الحملات</div><div class="nay-stat-value"><?= number_format((int)$stats['campaigns']) ?></div><div class="nay-stat-sub">إجمالي الحملات</div></div>
            <div class="nay-card"><div class="nay-stat-label">الحملات الفعالة</div><div class="nay-stat-value"><?= number_format((int)$stats['active_campaigns']) ?></div><div class="nay-stat-sub">جاهزة للعمل</div></div>
            <div class="nay-card"><div class="nay-stat-label">الحملات المجدولة</div><div class="nay-stat-value"><?= number_format((int)$stats['scheduled_campaigns']) ?></div><div class="nay-stat-sub">تعمل تلقائيًا</div></div>
            <div class="nay-card"><div class="nay-stat-label">مستحقة الآن</div><div class="nay-stat-value"><?= number_format((int)$stats['due_now_campaigns']) ?></div><div class="nay-stat-sub">بانتظار cron</div></div>
            <div class="nay-card"><div class="nay-stat-label">مرات التشغيل</div><div class="nay-stat-value"><?= number_format((int)$stats['runs']) ?></div><div class="nay-stat-sub">يدوي + مجدول</div></div>
            <div class="nay-card"><div class="nay-stat-label">كوبونات مولدة</div><div class="nay-stat-value"><?= number_format((int)$stats['generated_coupons']) ?></div><div class="nay-stat-sub">صادرة من الحملات</div></div>
            <div class="nay-card"><div class="nay-stat-label">إشعارات مرسلة</div><div class="nay-stat-value"><?= number_format((int)$stats['notifications_sent']) ?></div><div class="nay-stat-sub">تنفيذات داخل التطبيق</div></div>
            <div class="nay-card"><div class="nay-stat-label">نقاط مضافة</div><div class="nay-stat-value"><?= number_format((int)$stats['points_added']) ?></div><div class="nay-stat-sub">من محرك التسويق</div></div>
        </div>

        <div class="nay-grid-two" style="margin-top:16px">
            <div class="nay-card summary-card">
                <div class="nay-stat-label">أفضل حملة نجاحًا</div>
                <div class="summary-name"><?= mkt_h($stats['top_success_name'] ?: '—') ?></div>
                <div class="nay-stat-sub">تنفيذات ناجحة: <?= number_format((int)$stats['top_success_count']) ?></div>
            </div>
            <div class="nay-card summary-card">
                <div class="nay-stat-label">أكثر حملة واجهت فشلًا</div>
                <div class="summary-name"><?= mkt_h($stats['top_failed_name'] ?: '—') ?></div>
                <div class="nay-stat-sub">حالات فشل: <?= number_format((int)$stats['top_failed_count']) ?></div>
            </div>
        </div>

        <div class="nay-card" style="margin-top:16px">
            <div class="nay-card-header-inline"><h3>الحملات المستحقة للتشغيل المجدول</h3><span><?= count($dueCampaigns) ?> حملة</span></div>
            <?php if (!$dueCampaigns): ?>
                <div class="nay-empty">ماكو حملات مجدولة مستحقة حاليًا.</div>
            <?php else: ?>
                <div class="nay-table-wrap">
                    <table class="nay-table">
                        <thead><tr><th>الحملة</th><th>الجدولة</th><th>الموعد القادم</th><th>الأولوية</th><th>إجراء</th></tr></thead>
                        <tbody>
                        <?php foreach ($dueCampaigns as $row): ?>
                            <tr>
                                <td><strong><a href="view.php?id=<?= (int)$row['id'] ?>"><?= mkt_h($row['name']) ?></a></strong><div class="muted"><?= mkt_h($row['code']) ?></div></td>
                                <td><?= mkt_h(mkt_schedule_summary($row)) ?></td>
                                <td><?= mkt_h(mkt_next_run_label($row)) ?></td>
                                <td><?= (int)$row['priority'] ?></td>
                                <td><a class="nay-btn primary" href="run.php?id=<?= (int)$row['id'] ?>">تشغيل الآن</a></td>
                            </tr>
                        <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            <?php endif; ?>
        </div>

        <div class="nay-card" style="margin-top:16px">
            <div class="nay-card-header-inline"><h3>الحملات</h3><span><?= count($campaigns) ?> حملة</span></div>
            <?php if (!$campaigns): ?>
                <div class="nay-empty">حالياً ماكو حملات. ابدأ بإضافة أول حملة بعد تنفيذ SQL.</div>
            <?php else: ?>
                <div class="nay-table-wrap">
                    <table class="nay-table">
                        <thead><tr><th>#</th><th>الاسم</th><th>النوع</th><th>المكافأة</th><th>الحالة</th><th>التشغيل</th><th>القادم</th><th>آخر تشغيل</th><th>الإجراءات</th></tr></thead>
                        <tbody>
                        <?php foreach ($campaigns as $row): ?>
                            <tr>
                                <td><?= (int)$row['id'] ?></td>
                                <td>
                                    <strong><a href="view.php?id=<?= (int)$row['id'] ?>"><?= mkt_h($row['name']) ?></a></strong>
                                    <div class="muted"><?= mkt_h($row['code']) ?></div>
                                </td>
                                <td><?= mkt_h(mkt_campaign_types()[$row['campaign_type']] ?? $row['campaign_type']) ?></td>
                                <td><?= mkt_h(mkt_reward_types()[$row['reward_type']] ?? $row['reward_type']) ?></td>
                                <td><?= hub_status_badge(mkt_status_types()[$row['status']] ?? (string)$row['status'], in_array($row['status'], ['active'], true) ? 'success' : ($row['status'] === 'paused' ? 'warn' : 'info')) ?></td>
                                <td>
                                    <div><?= mkt_h(mkt_run_mode_types()[$row['run_mode']] ?? $row['run_mode']) ?></div>
                                    <div class="muted"><?= mkt_h(mkt_schedule_summary($row)) ?></div>
                                </td>
                                <td><?= mkt_h(mkt_next_run_label($row)) ?></td>
                                <td><?= mkt_h((string)($row['last_run_at'] ?: '—')) ?></td>
                                <td>
                                    <div class="inline-actions">
                                        <a class="nay-btn" href="view.php?id=<?= (int)$row['id'] ?>">عرض</a>
                                        <a class="nay-btn" href="edit.php?id=<?= (int)$row['id'] ?>">تعديل</a>
                                        <a class="nay-btn primary" href="run.php?id=<?= (int)$row['id'] ?>" onclick="return confirm('تشغيل الحملة الآن؟');">تشغيل الآن</a>
                                    </div>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            <?php endif; ?>
        </div>

        <div class="nay-card" style="margin-top:16px">
            <div class="nay-card-header-inline"><h3>آخر التشغيلات</h3><span><?= count($recentRuns) ?> تشغيل</span></div>
            <?php if (!$recentRuns): ?>
                <div class="nay-empty">ماكو تشغيلات بعد.</div>
            <?php else: ?>
                <div class="nay-table-wrap">
                    <table class="nay-table">
                        <thead><tr><th>الحملة</th><th>نوع التشغيل</th><th>بدأت</th><th>انتهت</th><th>المطابقون</th><th>تم التنفيذ</th><th>تم التخطي</th><th>فشل</th></tr></thead>
                        <tbody>
                        <?php foreach ($recentRuns as $run): ?>
                            <tr>
                                <td><a href="view.php?id=<?= (int)$run['campaign_id'] ?>"><?= mkt_h($run['campaign_name'] ?? ('#'.$run['campaign_id'])) ?></a></td>
                                <td><?= mkt_h(mkt_run_mode_types()[$run['run_type']] ?? ($run['run_type'] ?? 'manual')) ?></td>
                                <td><?= mkt_h((string)($run['started_at'] ?? '—')) ?></td>
                                <td><?= mkt_h((string)($run['finished_at'] ?: '—')) ?></td>
                                <td><?= number_format((int)($run['total_matched'] ?? 0)) ?></td>
                                <td><?= number_format((int)($run['total_executed'] ?? 0)) ?></td>
                                <td><?= number_format((int)($run['total_skipped'] ?? 0)) ?></td>
                                <td><?= number_format((int)($run['total_failed'] ?? 0)) ?></td>
                            </tr>
                        <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            <?php endif; ?>
        </div>
    </div>
</div>

<style>
.inline-actions{display:flex;gap:8px;flex-wrap:wrap}
.summary-card{display:flex;flex-direction:column;justify-content:center;min-height:118px}
.summary-name{font-size:20px;font-weight:800;color:#0f172a;margin:6px 0 4px}
</style>

<?php require_once __DIR__ . '/../includes/footer.php'; ?>
