<?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();
$campaignId = (int)($_GET['id'] ?? 0);
$campaign = mkt_fetch_campaign($db, $campaignId);
if (!$campaign) {
    set_flash('error', 'الحملة غير موجودة.');
    header('Location: index.php');
    exit;
}
$flash = get_flash();
$rules = mkt_fetch_rules($db, $campaignId);
$exclusions = mkt_fetch_exclusions($db, $campaignId);
$rewards = mkt_fetch_rewards($db, $campaignId);
$runs = mkt_fetch_runs($db, $campaignId, 15);
$logs = mkt_fetch_logs($db, $campaignId, 40);
$preview = mkt_schema_ready($db) ? mkt_preview_campaign($db, $campaignId, 8) : ['ok' => false, 'message' => 'نفّذ SQL المرحلة الثانية B أولاً.'];
$page_title = 'تفاصيل حملة: ' . (string)$campaign['name'];

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><?= mkt_h($campaign['name']) ?></h1><p><?= mkt_h($campaign['description'] ?: 'بدون وصف') ?></p></div>
        <div class="nay-actions">
            <a class="nay-btn primary" href="run.php?id=<?= $campaignId ?>" onclick="return confirm('تشغيل الحملة الآن؟');">تشغيل الآن</a>
            <a class="nay-btn" href="edit.php?id=<?= $campaignId ?>">تعديل</a>
            <a class="nay-btn" href="template_save_from_campaign.php?id=<?= $campaignId ?>" onclick="return confirm('حفظ هذه الحملة كقالب جديد؟');">حفظ كقالب</a>
            <a class="nay-btn" href="logs.php?campaign_id=<?= $campaignId ?>">السجل</a>
            <a class="nay-btn" href="cron.php" target="_blank">فحص المجدول</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 (!mkt_schema_ready($db)): ?><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="meta-grid" style="margin-bottom:16px">
        <div class="kv"><div class="k">الكود</div><div class="v"><?= mkt_h($campaign['code']) ?></div></div>
        <div class="kv"><div class="k">الحالة</div><div class="v"><?= mkt_h(mkt_status_types()[$campaign['status']] ?? $campaign['status']) ?></div></div>
        <div class="kv"><div class="k">الجمهور</div><div class="v"><?= mkt_h(mkt_audience_types()[$campaign['audience_type']] ?? $campaign['audience_type']) ?></div></div>
        <div class="kv"><div class="k">المكافأة</div><div class="v"><?= mkt_h(mkt_reward_types()[$campaign['reward_type']] ?? $campaign['reward_type']) ?></div></div>
        <div class="kv"><div class="k">القناة</div><div class="v"><?= mkt_h(mkt_channel_types()[$campaign['channel_type']] ?? $campaign['channel_type']) ?></div></div>
        <div class="kv"><div class="k">نوع التشغيل</div><div class="v"><?= mkt_h(mkt_run_mode_types()[$campaign['run_mode']] ?? $campaign['run_mode']) ?></div></div>
        <div class="kv"><div class="k">الحدث المحفّز</div><div class="v"><?= mkt_h(($campaign['run_mode'] ?? '') === 'triggered' ? mkt_trigger_event_label((string)($campaign['trigger_event'] ?? '')) : '—') ?></div></div>
        <div class="kv"><div class="k">ملخص الجدولة</div><div class="v"><?= mkt_h(mkt_schedule_summary($campaign)) ?></div></div>
        <div class="kv"><div class="k">الموعد القادم</div><div class="v"><?= mkt_h(mkt_next_run_label($campaign)) ?></div></div>
        <div class="kv"><div class="k">آخر تشغيل</div><div class="v"><?= mkt_h((string)($campaign['last_run_at'] ?: '—')) ?></div></div>
        <div class="kv"><div class="k">التكرار</div><div class="v"><?= (int)$campaign['allow_repeat'] === 1 ? ('نعم / بعد ' . ((int)$campaign['repeat_after_days'] ?: 0) . ' يوم') : 'مرة واحدة' ?></div></div>
        <div class="kv"><div class="k">فترة التهدئة</div><div class="v"><?php $cd=(int)($campaign['cooldown_days']??0); echo $cd>0 ? ($cd . ' يوم / ' . ((['same_campaign'=>'لنفس الحملة','same_reward_type'=>'لنفس نوع المكافأة','any_campaign'=>'لأي حملة'][$campaign['cooldown_scope'] ?? 'same_campaign']) ?? 'لنفس الحملة')) : 'غير مفعلة'; ?></div></div>
        <div class="kv"><div class="k">المدة</div><div class="v"><?= mkt_h((string)($campaign['starts_at'] ?: '—')) ?> إلى <?= mkt_h((string)($campaign['ends_at'] ?: '—')) ?></div></div>
    </div>

    <div class="nay-card" style="margin-bottom:16px">
        <div class="nay-card-header-inline"><h3>المعاينة قبل التشغيل</h3><span><?= $preview['ok'] ? 'جاهزة' : 'غير متاحة' ?></span></div>
        <?php if (!($preview['ok'] ?? false)): ?>
            <div class="nay-empty"><?= mkt_h($preview['message'] ?? 'المعاينة غير متاحة.') ?></div>
        <?php else: ?>
            <div class="nay-stats-grid" style="margin-bottom:16px">
                <div class="nay-card"><div class="nay-stat-label">المرشحون أوليًا</div><div class="nay-stat-value"><?= number_format((int)$preview['total_candidates']) ?></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)$preview['ready_count']) ?></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)$preview['excluded_count']) ?></div><div class="nay-stat-sub">لن يتم التنفيذ عليهم</div></div>
            </div>
            <div class="nay-grid-two">
                <div class="nay-card inner-card">
                    <div class="nay-card-header-inline"><h3>عينة الجاهزين للتنفيذ</h3><span><?= count($preview['ready_sample'] ?? []) ?></span></div>
                    <?php if (empty($preview['ready_sample'])): ?><div class="nay-empty">لا يوجد زبائن جاهزون حاليًا.</div><?php else: ?>
                        <div class="nay-table-wrap"><table class="nay-table"><thead><tr><th>الزبون</th><th>المستوى</th><th>السبب</th></tr></thead><tbody>
                        <?php foreach (($preview['ready_sample'] ?? []) as $row): ?><tr><td><?= mkt_h($row['full_name'] ?? ('#'.$row['id'])) ?><div class="muted"><?= mkt_h($row['phone'] ?? '') ?></div></td><td><?= mkt_h($row['tier_title'] ?? '-') ?></td><td><?= mkt_h($row['decision_reason'] ?? '-') ?></td></tr><?php endforeach; ?>
                        </tbody></table></div>
                    <?php endif; ?>
                </div>
                <div class="nay-card inner-card">
                    <div class="nay-card-header-inline"><h3>عينة المستبعدين</h3><span><?= count($preview['excluded_sample'] ?? []) ?></span></div>
                    <?php if (empty($preview['excluded_sample'])): ?><div class="nay-empty">لا يوجد مستبعدون ضمن العينة الحالية.</div><?php else: ?>
                        <div class="nay-table-wrap"><table class="nay-table"><thead><tr><th>الزبون</th><th>المستوى</th><th>سبب الاستبعاد</th></tr></thead><tbody>
                        <?php foreach (($preview['excluded_sample'] ?? []) as $row): ?><tr><td><?= mkt_h($row['full_name'] ?? ('#'.$row['id'])) ?><div class="muted"><?= mkt_h($row['phone'] ?? '') ?></div></td><td><?= mkt_h($row['tier_title'] ?? '-') ?></td><td><?= mkt_h($row['decision_reason'] ?? '-') ?></td></tr><?php endforeach; ?>
                        </tbody></table></div>
                    <?php endif; ?>
                </div>
            </div>
        <?php endif; ?>
    </div>

    <div class="nay-grid-two">
        <div class="nay-card">
            <div class="nay-card-header-inline"><h3>الشروط</h3><span><?= count($rules) ?> عنصر</span></div>
            <?php if (!$rules): ?><div class="nay-empty">ماكو شروط إضافية.</div><?php else: ?>
                <div class="nay-table-wrap"><table class="nay-table"><thead><tr><th>المفتاح</th><th>القيمة</th></tr></thead><tbody>
                <?php foreach ($rules as $row): ?><tr><td><?= mkt_h(mkt_rule_label((string)$row['rule_key'])) ?></td><td><?= mkt_h($row['rule_value']) ?></td></tr><?php endforeach; ?>
                </tbody></table></div>
            <?php endif; ?>
        </div>
        <div class="nay-card">
            <div class="nay-card-header-inline"><h3>الاستثناءات</h3><span><?= count($exclusions) ?> عنصر</span></div>
            <?php if (!$exclusions): ?><div class="nay-empty">ماكو استثناءات.</div><?php else: ?>
                <div class="nay-table-wrap"><table class="nay-table"><thead><tr><th>المفتاح</th><th>القيمة</th></tr></thead><tbody>
                <?php foreach ($exclusions as $row): ?><tr><td><?= mkt_h(mkt_exclusion_label((string)$row['exclusion_key'])) ?></td><td><?= mkt_h($row['exclusion_value']) ?></td></tr><?php endforeach; ?>
                </tbody></table></div>
            <?php endif; ?>
        </div>
    </div>

    <div class="nay-card" style="margin-top:16px">
        <div class="nay-card-header-inline"><h3>المكافآت / الإعدادات</h3><span><?= count($rewards) ?> عنصر</span></div>
        <?php if (!$rewards): ?><div class="nay-empty">ماكو بيانات مكافأة.</div><?php else: ?>
            <div class="nay-table-wrap"><table class="nay-table"><thead><tr><th>المفتاح</th><th>القيمة</th></tr></thead><tbody>
            <?php foreach ($rewards as $row): ?><tr><td><?= mkt_h(mkt_reward_label((string)$row['reward_key'])) ?></td><td><?= mkt_h($row['reward_value']) ?></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($runs) ?> تشغيل</span></div>
        <?php if (!$runs): ?><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></tr></thead><tbody>
            <?php foreach ($runs as $run): ?><tr><td><?= mkt_h(mkt_run_mode_types()[$run['run_type']] ?? ($run['run_type'] ?? 'manual')) ?></td><td><?= mkt_h($run['started_at']) ?></td><td><?= mkt_h((string)($run['finished_at'] ?: '—')) ?></td><td><?= (int)$run['total_matched'] ?></td><td><?= (int)$run['total_executed'] ?></td><td><?= (int)$run['total_skipped'] ?></td><td><?= (int)$run['total_failed'] ?></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($logs) ?> سجل</span></div>
        <?php if (!$logs): ?><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 ($logs as $log): ?><tr><td><?= mkt_h($log['full_name'] ?? ('#'.$log['customer_id'])) ?><div class="muted"><?= mkt_h($log['phone'] ?? '') ?></div></td><td><?= mkt_h(mkt_run_mode_types()[$log['run_type']] ?? ($log['run_type'] ?? 'manual')) ?></td><td><?= mkt_h(mkt_log_status_label((string)$log['status_text'])) ?></td><td><?= mkt_h($log['matched_reason'] ?: ($log['failure_reason'] ?: ($log['skip_reason'] ?: '—'))) ?></td><td><?= mkt_h($log['executed_at']) ?></td></tr><?php endforeach; ?>
            </tbody></table></div>
        <?php endif; ?>
    </div>
</div></div>

<style>
.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.kv{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:12px 14px}
.kv .k{font-size:12px;color:#64748b;margin-bottom:4px}
.kv .v{font-size:15px;font-weight:700;color:#0f172a}
.inner-card{background:#fff;border:1px solid #eef2f7}
@media(max-width:768px){.meta-grid{grid-template-columns:1fr}}
</style>

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