<?php
require_once __DIR__ . '/_layout.php';
web_require_perm('users');
$fg = dirname(__DIR__) . '/app/Services/FraudGuardService.php';
$rf = dirname(__DIR__) . '/app/Services/ReferralService.php';
if(is_file($fg)) require_once $fg;
if(is_file($rf)) require_once $rf;
web_check_csrf();
if($_SERVER['REQUEST_METHOD'] === 'POST'){
    $settings = function_exists('bot_fraud_settings') ? bot_fraud_settings() : [];
    $settings['enabled'] = isset($_POST['enabled']) ? '✅فعال' : '❌غیر فعال';
    $settings['referral_require_forced_join'] = isset($_POST['referral_require_forced_join']) ? '✅فعال' : '❌غیر فعال';
    $settings['strict_no_forced_join_no_reward'] = isset($_POST['strict_no_forced_join_no_reward']) ? '✅فعال' : '❌غیر فعال';
    $settings['notify_referrer_after_verified'] = isset($_POST['notify_referrer_after_verified']) ? '✅فعال' : '❌غیر فعال';
    $settings['log_referral_start'] = isset($_POST['log_referral_start']) ? '✅فعال' : '❌غیر فعال';
    $settings['log_forced_join_leave'] = isset($_POST['log_forced_join_leave']) ? '✅فعال' : '❌غیر فعال';
    $settings['min_verify_seconds'] = max(0, (int)($_POST['min_verify_seconds'] ?? 0));
    $settings['pending_expire_days'] = max(1, (int)($_POST['pending_expire_days'] ?? 14));
    if(function_exists('bot_fraud_save_settings')) bot_fraud_save_settings($settings);
    web_flash('تنظیمات ضدتقلب ذخیره شد.','success');
    header('Location: fraud.php'); exit;
}
$s = function_exists('bot_fraud_settings') ? bot_fraud_settings() : [];
$sum = function_exists('bot_fraud_admin_summary') ? bot_fraud_admin_summary(50) : ['total'=>0,'warning'=>0,'danger'=>0,'rows'=>[]];
$locks = function_exists('bot_fraud_forced_join_channels') ? bot_fraud_forced_join_channels() : [];
web_header('ضدتقلب پیشرفته');
?>
<section class="grid cards-4">
  <div class="card stat"><b>رویدادها</b><strong><?= web_h(number_format((int)($sum['total'] ?? 0))) ?></strong><span>کل لاگ ضدتقلب</span></div>
  <div class="card stat"><b>هشدارها</b><strong><?= web_h(number_format((int)($sum['warning'] ?? 0))) ?></strong><span>نیازمند بررسی</span></div>
  <div class="card stat"><b>خطرناک</b><strong><?= web_h(number_format((int)($sum['danger'] ?? 0))) ?></strong><span>رفتار مشکوک شدید</span></div>
  <div class="card stat"><b>قفل‌های جوین</b><strong><?= web_h(number_format(count($locks))) ?></strong><span>رفرال فقط بعد از تکمیل این‌ها پاداش می‌گیرد</span></div>
</section>
<section class="card"><h2>تنظیمات ضدتقلب رفرال و استارت</h2><form method="post" class="form-grid"><?php web_csrf_input(); ?>
<label class="check"><input type="checkbox" name="enabled" <?= (($s['enabled'] ?? '✅فعال') === '✅فعال') ? 'checked' : '' ?>> فعال بودن ضدتقلب</label>
<label class="check"><input type="checkbox" name="referral_require_forced_join" <?= (($s['referral_require_forced_join'] ?? '✅فعال') === '✅فعال') ? 'checked' : '' ?>> پاداش رفرال فقط بعد از جوین اجباری</label>
<label class="check"><input type="checkbox" name="strict_no_forced_join_no_reward" <?= (($s['strict_no_forced_join_no_reward'] ?? '✅فعال') === '✅فعال') ? 'checked' : '' ?>> اگر قفل جوین تنظیم نشده، پاداش رفرال/استارت داده نشود</label>
<label class="check"><input type="checkbox" name="notify_referrer_after_verified" <?= (($s['notify_referrer_after_verified'] ?? '✅فعال') === '✅فعال') ? 'checked' : '' ?>> بعد از تأیید واقعی، به دعوت‌کننده پیام بده</label>
<label class="check"><input type="checkbox" name="log_referral_start" <?= (($s['log_referral_start'] ?? '✅فعال') === '✅فعال') ? 'checked' : '' ?>> ثبت لاگ استارت‌های رفرالی</label>
<label class="check"><input type="checkbox" name="log_forced_join_leave" <?= (($s['log_forced_join_leave'] ?? '✅فعال') === '✅فعال') ? 'checked' : '' ?>> ثبت لاگ خروج از قفل جوین بعد از پاداش</label>
<div class="field"><label>حداقل فاصله تأیید بعد از استارت، ثانیه</label><input name="min_verify_seconds" type="number" min="0" value="<?= web_h((string)($s['min_verify_seconds'] ?? 0)) ?>"><small>برای سخت‌گیری بیشتر مثلاً 30 یا 60 بگذار.</small></div>
<div class="field"><label>انقضای رفرال‌های در انتظار، روز</label><input name="pending_expire_days" type="number" min="1" value="<?= web_h((string)($s['pending_expire_days'] ?? 14)) ?>"></div>
<div class="actions"><button class="btn primary" type="submit">ذخیره تنظیمات</button><a class="btn" href="channels.php">مدیریت قفل‌های جوین</a><a class="btn" href="referrals.php">گزارش رفرال</a></div></form></section>
<section class="card"><h2>قانون فعلی</h2><p class="muted">کاربر دعوت‌شده فقط با /start زیرمجموعه قطعی نمی‌شود. ابتدا «در انتظار» ثبت می‌شود؛ بعد از تکمیل همه قفل‌های جوین اجباری و زدن دکمه بررسی، هدیه استارت خودش و پاداش رفرال دعوت‌کننده آزاد می‌شود.</p></section>
<section class="card"><h2>آخرین رویدادهای ضدتقلب</h2><?php web_table_start(['زمان','نوع','کاربر','دعوت‌کننده','شدت','توضیح']); ?><?php foreach((array)($sum['rows'] ?? []) as $r): ?><tr><td><?= web_h((string)($r['created_at'] ?? '')) ?></td><td><code><?= web_h((string)($r['event_type'] ?? '')) ?></code></td><td><?= web_h((string)($r['user_id'] ?? '-')) ?></td><td><?= web_h((string)($r['referrer_id'] ?? '-')) ?></td><td><?= web_h((string)($r['severity'] ?? 'info')) ?></td><td><?= web_h((string)($r['message'] ?? '')) ?></td></tr><?php endforeach; ?><?php if(empty($sum['rows'])): ?><tr><td colspan="6" class="muted">هنوز رویدادی ثبت نشده است.</td></tr><?php endif; ?><?php web_table_end(); ?></section>
<?php web_footer(); ?>
