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

$error = '';
$success = '';

if (isset($_GET['delete_level'])) {
    $res = infl_delete_level((int)$_GET['delete_level']);
    if ($res['success']) {
        infl_redirect('levels.php?msg=' . urlencode($res['message']));
    }
    $error = $res['message'];
}

if (isset($_GET['refresh_levels'])) {
    $res = infl_refresh_all_influencer_levels();
    if ($res['success']) {
        infl_redirect('levels.php?msg=' . urlencode($res['message']));
    }
    $error = $res['message'];
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['save_window'])) {
        $res = infl_set_sales_window($_POST['period_start'] ?? '', $_POST['period_end'] ?? '');
    } else {
        $res = infl_save_level($_POST, (int)($_POST['level_id'] ?? 0));
    }
    if ($res['success']) {
        infl_redirect('levels.php?msg=' . urlencode($res['message']));
    }
    $error = $res['message'];
}

if (isset($_GET['msg']) && $_GET['msg'] !== '') $success = trim((string)$_GET['msg']);
$issues = array_merge(infl_schema_issues(), infl_levels_tables_ready() ? [] : ['جداول المستويات أو فوائد المستويات غير موجودة.']);
$window = infl_sales_window();
$levels = infl_get_levels();
$editId = (int)($_GET['id'] ?? 0);
$edit = $editId > 0 ? infl_find_level($editId) : null;
$form = [
    'level_id' => (int)($edit['id'] ?? 0),
    'title' => (string)($edit['title'] ?? ''),
    'sales_min' => (string)($edit['sales_min'] ?? '0'),
    'sales_max' => isset($edit['sales_max']) && $edit['sales_max'] !== null ? (string)$edit['sales_max'] : '',
    'sort_order' => (string)($edit['sort_order'] ?? '0'),
    'is_active' => (int)($edit['is_active'] ?? 1),
    'benefits_text' => $edit ? implode("\n", array_map(fn($row) => (string)($row['display_text'] ?? ''), $edit['benefits'] ?? [])) : '',
];

$levelStats = [];
if (infl_levels_tables_ready()) {
    foreach ($levels as $level) {
        $levelId = (int)$level['id'];
        $assigned = infl_fetch_one("SELECT COUNT(*) AS total FROM influencers WHERE level_id = ?", 'i', [$levelId]);
        $levelStats[$levelId] = ['assigned' => (int)($assigned['total'] ?? 0)];
    }
}

$page_title = 'مستويات المؤثرين';
require_once __DIR__ . '/../includes/header.php';
require_once __DIR__ . '/../includes/sidebar.php';
?>
<div class="ns-page">
    <div class="ns-hero">
        <div class="ns-hero-title">
            <h1>مستويات المؤثرين</h1>
            <p>إدارة المستويات الثلاثة أو أكثر، حدود المبيعات، وفوائد كل مستوى، مع تحديد نافذة التقييم الزمنية المستخدمة لاحتساب الترقية.</p>
        </div>
        <div class="ns-hero-actions">
            <a href="index.php" class="ns-btn ns-btn-light"><i class="fa-solid fa-arrow-right"></i> رجوع</a>
            <a href="levels.php?refresh_levels=1" class="ns-btn ns-btn-dark" onclick="return confirm('تحديث مستويات كل المؤثرين حسب النافذة الحالية؟');"><i class="fa-solid fa-rotate"></i> تحديث المستويات</a>
        </div>
    </div>

    <?php if ($success !== ''): ?><div class="ns-alert ns-alert-success"><?= infl_h($success) ?></div><?php endif; ?>
    <?php if ($error !== ''): ?><div class="ns-alert ns-alert-error"><?= infl_h($error) ?></div><?php endif; ?>
    <?php if ($issues): ?>
        <div class="ns-alert ns-alert-warn"><strong style="display:block;margin-bottom:8px;">أكو حقول/جداول ناقصة</strong><ul style="margin:0;padding-right:18px;line-height:1.9;"><?php foreach ($issues as $issue): ?><li><?= infl_h($issue) ?></li><?php endforeach; ?></ul></div>
    <?php endif; ?>

    <div class="ns-grid-2 equal" style="margin-bottom:18px;">
        <div class="ns-panel">
            <div class="ns-panel-head"><div><h2>نافذة تقييم المستويات</h2><p>أي طلب مسلّم ومدفوع داخل هذه الفترة يدخل في احتساب المستوى.</p></div></div>
            <div class="ns-panel-body">
                <form method="post" class="ns-form-grid">
                    <input type="hidden" name="save_window" value="1">
                    <div class="ns-form-group">
                        <label>بداية الفترة</label>
                        <input type="date" name="period_start" value="<?= infl_h($window['start']) ?>">
                    </div>
                    <div class="ns-form-group">
                        <label>نهاية الفترة</label>
                        <input type="date" name="period_end" value="<?= infl_h($window['end']) ?>">
                    </div>
                    <div style="grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;">
                        <button type="submit" class="ns-btn ns-btn-primary">حفظ النافذة</button>
                        <a href="levels.php" class="ns-btn ns-btn-light">إعادة تحميل</a>
                    </div>
                </form>
            </div>
        </div>
        <div class="ns-panel">
            <div class="ns-panel-head"><div><h2><?= $form['level_id'] > 0 ? 'تعديل مستوى' : 'إضافة مستوى جديد' ?></h2><p>كل سطر في الفوائد يُعرض كبند منفصل داخل لوحة الانفلونسر.</p></div></div>
            <div class="ns-panel-body">
                <form method="post" class="ns-form-grid">
                    <input type="hidden" name="level_id" value="<?= (int)$form['level_id'] ?>">
                    <div class="ns-form-group">
                        <label>اسم المستوى</label>
                        <input type="text" name="title" value="<?= infl_h($form['title']) ?>" required>
                    </div>
                    <div class="ns-form-group">
                        <label>الحد الأدنى للمبيعات</label>
                        <input type="number" step="0.01" min="0" name="sales_min" value="<?= infl_h($form['sales_min']) ?>" required>
                    </div>
                    <div class="ns-form-group">
                        <label>الحد الأعلى للمبيعات</label>
                        <input type="number" step="0.01" min="0" name="sales_max" value="<?= infl_h($form['sales_max']) ?>" placeholder="اتركه فارغاً للمستوى المفتوح">
                    </div>
                    <div class="ns-form-group">
                        <label>الترتيب</label>
                        <input type="number" name="sort_order" value="<?= infl_h($form['sort_order']) ?>">
                    </div>
                    <div class="ns-form-group">
                        <label style="display:flex;align-items:center;gap:8px;"><input type="checkbox" name="is_active" value="1" <?= (int)$form['is_active'] === 1 ? 'checked' : '' ?>> مستوى نشط</label>
                    </div>
                    <div class="ns-form-group" style="grid-column:1/-1;">
                        <label>فوائد المستوى</label>
                        <textarea name="benefits_text" rows="6" placeholder="اكتب كل فائدة بسطر مستقل"><?= infl_h($form['benefits_text']) ?></textarea>
                    </div>
                    <div style="grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;">
                        <button type="submit" class="ns-btn ns-btn-primary"><?= $form['level_id'] > 0 ? 'حفظ التعديل' : 'إنشاء المستوى' ?></button>
                        <?php if ($form['level_id'] > 0): ?><a href="levels.php" class="ns-btn ns-btn-light">إلغاء التعديل</a><?php endif; ?>
                    </div>
                </form>
            </div>
        </div>
    </div>

    <div class="ns-panel">
        <div class="ns-panel-head"><div><h2>قائمة المستويات</h2><p>عرض مباشر للمستويات الحالية وعدد المؤثرين المرتبطين بكل مستوى.</p></div></div>
        <div class="ns-panel-body">
            <?php if ($levels): ?>
                <div class="ns-table-wrap">
                    <table class="ns-table" style="min-width:980px;">
                        <thead>
                            <tr>
                                <th>#</th>
                                <th>المستوى</th>
                                <th>حدود المبيعات</th>
                                <th>الفوائد</th>
                                <th>مرتبطين به</th>
                                <th>الحالة</th>
                                <th>الإجراءات</th>
                            </tr>
                        </thead>
                        <tbody>
                        <?php foreach ($levels as $level): $levelId = (int)$level['id']; ?>
                            <tr>
                                <td><?= $levelId ?></td>
                                <td style="text-align:right;"><?= infl_h($level['title']) ?></td>
                                <td><?= infl_money_plain($level['sales_min']) ?><?php if ($level['sales_max'] !== null): ?> - <?= infl_money_plain($level['sales_max']) ?><?php else: ?>+<?php endif; ?></td>
                                <td style="text-align:right;">
                                    <?php if (!empty($level['benefits'])): ?>
                                        <ul style="margin:0;padding-right:18px;line-height:1.8;">
                                            <?php foreach ($level['benefits'] as $benefit): ?><li><?= infl_h($benefit['display_text']) ?></li><?php endforeach; ?>
                                        </ul>
                                    <?php else: ?>-
                                    <?php endif; ?>
                                </td>
                                <td><?= number_format((int)($levelStats[$levelId]['assigned'] ?? 0)) ?></td>
                                <td><?= (int)$level['is_active'] === 1 ? '<span class="ns-chip success">نشط</span>' : '<span class="ns-chip warn">معطل</span>' ?></td>
                                <td>
                                    <div class="ns-actions">
                                        <a class="ns-btn-sm ns-btn-edit" href="levels.php?id=<?= $levelId ?>">تعديل</a>
                                        <a class="ns-btn-sm ns-btn-delete" href="levels.php?delete_level=<?= $levelId ?>" onclick="return confirm('حذف هذا المستوى؟ سيتم فك ربط المؤثرين منه.');">حذف</a>
                                    </div>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                        </tbody>
                    </table>
                </div>
            <?php else: ?>
                <div class="ns-empty">ماكو مستويات مضافة حالياً.</div>
            <?php endif; ?>
        </div>
    </div>
</div>
<?php require_once __DIR__ . '/../includes/footer.php'; ?>
