<?php require_once __DIR__.'/_layout.php'; web_require_login(); $pdo=web_pdo(); if(function_exists('bot_referral_install_schema')) bot_referral_install_schema();
$refSettings = function_exists('bot_referral_settings') ? bot_referral_settings() : [];
if($_SERVER['REQUEST_METHOD']==='POST' && ($_POST['action'] ?? '') === 'save_referral_rewards'){
  $refSettings['power'] = ($_POST['power'] ?? '✅فعال') === '✅فعال' ? '✅فعال' : '❌غیر فعال';
  $refSettings['ref_join_reward_power'] = ($_POST['ref_join_reward_power'] ?? '✅فعال') === '✅فعال' ? '✅فعال' : '❌غیر فعال';
  $refSettings['notify_referrer_on_pending'] = ($_POST['notify_referrer_on_pending'] ?? '✅فعال') === '✅فعال' ? '✅فعال' : '❌غیر فعال';
  $refSettings['notify_referrer_on_verified'] = ($_POST['notify_referrer_on_verified'] ?? '✅فعال') === '✅فعال' ? '✅فعال' : '❌غیر فعال';
  $refSettings['require_forced_join_for_reward'] = ($_POST['require_forced_join_for_reward'] ?? '✅فعال') === '✅فعال' ? '✅فعال' : '❌غیر فعال';
  foreach(['invitecoin1','invitecoin2','invitecoin3','zirjoinads','coin-join','ref_join_reward_per_channel','upgrade_professional_refs','upgrade_vip_refs'] as $k){
    $v = preg_replace('/[^0-9]/','', (string)($_POST[$k] ?? ($refSettings[$k] ?? '0')));
    $refSettings[$k] = (string)max($k==='zirjoinads' ? 1 : 0, (int)$v);
  }
  if(function_exists('bot_referral_save_settings')) bot_referral_save_settings($refSettings);
  if(function_exists('web_admin_log')) web_admin_log('referral_rewards_update','setting','referral_rewards','تغییر تنظیمات پاداش رفرال از پنل وب');
  web_flash('success','تنظیمات پاداش رفرال ذخیره شد.');
  web_redirect('referrals.php');
}
web_header('گزارش رفرال');
if(!$pdo){ echo '<div class="alert error">دیتابیس فعال نیست؛ گزارش کامل SQL در دسترس نیست.</div>'; }
$targetVip = max(1, (int)($refSettings['upgrade_vip_refs'] ?? 100));
$nearMin = max(1, $targetVip - 20);
$range=trim((string)($_GET['range'] ?? 'all'));
$where='1=1';
if($range==='today') $where="r.created_at >= CURDATE()";
elseif($range==='7') $where="r.created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)";
elseif($range==='30') $where="r.created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)";
$stats=['total'=>0,'active'=>0,'today'=>0,'bonus'=>0]; $top=[]; $near=[]; $recent=[];
if($pdo){
  try{
    $stats['total']=(int)$pdo->query('SELECT COUNT(*) FROM bot_referrals')->fetchColumn();
    $stats['active']=(int)$pdo->query("SELECT COUNT(*) FROM bot_referrals WHERE active_reward_applied=1 OR status='active_rewarded'")->fetchColumn();
    $stats['today']=(int)$pdo->query('SELECT COUNT(*) FROM bot_referrals WHERE created_at >= CURDATE()')->fetchColumn();
    $stats['bonus']=(int)$pdo->query("SELECT COALESCE(SUM(amount),0) FROM bot_referral_events WHERE event_type IN ('signup_reward','signup_reward_verified_forced_join','active_reward','per_join_reward','forced_join_check_bonus')")->fetchColumn();
    $st=$pdo->query("SELECT r.referrer_id, COUNT(*) refs, SUM(CASE WHEN r.active_reward_applied=1 OR r.status='active_rewarded' THEN 1 ELSE 0 END) active_refs, COALESCE((SELECT SUM(e.amount) FROM bot_referral_events e WHERE e.referrer_id=r.referrer_id AND e.event_type IN ('signup_reward','signup_reward_verified_forced_join','active_reward','per_join_reward','forced_join_check_bonus')),0) bonus, MAX(r.updated_at) last_at FROM bot_referrals r WHERE {$where} GROUP BY r.referrer_id ORDER BY refs DESC, active_refs DESC LIMIT 100");
    $top=$st->fetchAll(PDO::FETCH_ASSOC);
    $st=$pdo->query("SELECT referrer_id, COUNT(*) refs, SUM(CASE WHEN active_reward_applied=1 OR status='active_rewarded' THEN 1 ELSE 0 END) active_refs FROM bot_referrals GROUP BY referrer_id HAVING refs >= ".(int)$nearMin." AND refs < ".(int)$targetVip." ORDER BY refs DESC LIMIT 50");
    $near=$st->fetchAll(PDO::FETCH_ASSOC);
    $st=$pdo->query('SELECT referrer_id,referred_id,status,signup_reward_amount,active_reward_amount,referred_join_count,created_at,updated_at FROM bot_referrals ORDER BY id DESC LIMIT 80');
    $recent=$st->fetchAll(PDO::FETCH_ASSOC);
  }catch(Throwable $e){ echo '<div class="alert error">خطا در خواندن گزارش: '.web_h($e->getMessage()).'</div>'; }
}
?>
<div class="grid dashboard-grid">
  <?php web_card('کل زیرمجموعه‌ها', number_format($stats['total'])); ?>
  <?php web_card('فعال/پاداش‌گرفته', number_format($stats['active'])); ?>
  <?php web_card('امروز', number_format($stats['today'])); ?>
  <?php web_card('کل پاداش', number_format($stats['bonus']).' الماس'); ?>
</div>
<div class="panel"><h3>⚙️ تنظیمات پاداش و ارتقای رفرال</h3><form method="post" class="grid"><?php web_csrf_input(); ?><input type="hidden" name="action" value="save_referral_rewards">
  <div class="field"><label>وضعیت رفرال</label><select name="power"><option value="✅فعال" <?=($refSettings['power'] ?? '')==='✅فعال'?'selected':''?>>فعال</option><option value="❌غیر فعال" <?=($refSettings['power'] ?? '')!=='✅فعال'?'selected':''?>>غیرفعال</option></select></div>
  <div class="field"><label>پاداش ورود زیرمجموعه - عادی</label><input name="invitecoin1" type="number" min="0" value="<?=web_h($refSettings['invitecoin1'] ?? 10)?>"></div>
  <div class="field"><label>پاداش ورود زیرمجموعه - حرفه‌ای</label><input name="invitecoin2" type="number" min="0" value="<?=web_h($refSettings['invitecoin2'] ?? 15)?>"></div>
  <div class="field"><label>پاداش ورود زیرمجموعه - پرو/ویژه</label><input name="invitecoin3" type="number" min="0" value="<?=web_h($refSettings['invitecoin3'] ?? 20)?>"></div>
  <div class="field"><label>پاداش اضافه بعد از بررسی عضویت جوین اجباری</label><select name="ref_join_reward_power"><option value="✅فعال" <?=($refSettings['ref_join_reward_power'] ?? '')==='✅فعال'?'selected':''?>>فعال</option><option value="❌غیر فعال" <?=($refSettings['ref_join_reward_power'] ?? '')!=='✅فعال'?'selected':''?>>غیرفعال</option></select></div>
  <div class="field"><label>مقدار پاداش اضافه بعد از اینکه زیرمجموعه کانال‌های جوین اجباری را عضو شد و «بررسی عضویت» زد</label><input name="ref_join_reward_per_channel" type="number" min="0" value="<?=web_h($refSettings['ref_join_reward_per_channel'] ?? 10)?>"></div>
  <div class="field"><label>پیام ورود اولیه به معرف</label><select name="notify_referrer_on_pending"><option value="✅فعال" <?=($refSettings['notify_referrer_on_pending'] ?? '✅فعال')==='✅فعال'?'selected':''?>>فعال</option><option value="❌غیر فعال" <?=($refSettings['notify_referrer_on_pending'] ?? '✅فعال')!=='✅فعال'?'selected':''?>>غیرفعال</option></select></div>
  <div class="field"><label>پیام تأیید نهایی با موجودی جدید</label><select name="notify_referrer_on_verified"><option value="✅فعال" <?=($refSettings['notify_referrer_on_verified'] ?? '✅فعال')==='✅فعال'?'selected':''?>>فعال</option><option value="❌غیر فعال" <?=($refSettings['notify_referrer_on_verified'] ?? '✅فعال')!=='✅فعال'?'selected':''?>>غیرفعال</option></select></div>
  <div class="field"><label>پاداش فقط بعد از جوین اجباری</label><select name="require_forced_join_for_reward"><option value="✅فعال" <?=($refSettings['require_forced_join_for_reward'] ?? '✅فعال')==='✅فعال'?'selected':''?>>فعال</option><option value="❌غیر فعال" <?=($refSettings['require_forced_join_for_reward'] ?? '✅فعال')!=='✅فعال'?'selected':''?>>غیرفعال</option></select></div>
  <div class="field"><label>شرط پاداش مرحله‌ای زیرمجموعه فعال</label><input name="zirjoinads" type="number" min="1" value="<?=web_h($refSettings['zirjoinads'] ?? 20)?>"></div>
  <div class="field"><label>پاداش مرحله‌ای بعد از رسیدن به شرط بالا</label><input name="coin-join" type="number" min="0" value="<?=web_h($refSettings['coin-join'] ?? 10)?>"></div>
  <div class="field"><label>ارتقا به حرفه‌ای بعد از چند زیرمجموعه تأییدشده؟</label><input name="upgrade_professional_refs" type="number" min="0" value="<?=web_h($refSettings['upgrade_professional_refs'] ?? 10)?>"></div>
  <div class="field"><label>ارتقا به پرو/ویژه بعد از چند زیرمجموعه تأییدشده؟</label><input name="upgrade_vip_refs" type="number" min="0" value="<?=web_h($refSettings['upgrade_vip_refs'] ?? 20)?>"></div>
  <div class="field"><label>&nbsp;</label><button>ذخیره تنظیمات</button></div>
</form><div class="alert">پاداش ورود زیرمجموعه و پاداش بررسی عضویت فقط بعد از تکمیل کانال‌های جوین اجباری و زدن دکمه «بررسی عضویت / عضو شدم» پرداخت می‌شود. پاداش بررسی عضویت فقط یک‌بار برای هر زیرمجموعه پرداخت می‌شود و مقدار آن از همین صفحه قابل تغییر است.</div></div>
<div class="panel"><form method="get" class="row"><select name="range" style="max-width:220px"><option value="all" <?=$range==='all'?'selected':''?>>همه زمان‌ها</option><option value="today" <?=$range==='today'?'selected':''?>>امروز</option><option value="7" <?=$range==='7'?'selected':''?>>۷ روز اخیر</option><option value="30" <?=$range==='30'?'selected':''?>>۳۰ روز اخیر</option></select><button>اعمال فیلتر</button><a class="btn light" href="referrals.php">حذف فیلتر</a></form></div>
<div class="panel"><h3>🏆 برترین زیرمجموعه‌گیرها</h3><?php if(!$top): ?><div class="search-empty">آماری ثبت نشده است.</div><?php else: web_table_start(['کاربر','کل زیرمجموعه','فعال','پاداش','تا پرو/ویژه','آخرین فعالیت']); foreach($top as $r){ $refs=(int)$r['refs']; echo '<tr><td><a href="users.php?q='.web_h($r['referrer_id']).'">'.web_h($r['referrer_id']).'</a></td><td>'.number_format($refs).'</td><td>'.number_format((int)$r['active_refs']).'</td><td>'.number_format((int)$r['bonus']).'</td><td>'.($refs>=$targetVip?'✅ تکمیل':number_format(max(0,$targetVip-$refs))).'</td><td>'.web_h($r['last_at']).'</td></tr>'; } web_table_end(); endif; ?></div>
<div class="panel"><h3>🎯 نزدیک به ارتقای پرو/ویژه</h3><?php if(!$near): ?><div class="search-empty">فعلاً کسی نزدیک آستانه نیست.</div><?php else: web_table_start(['کاربر','زیرمجموعه','فعال','باقی‌مانده']); foreach($near as $r){ $refs=(int)$r['refs']; echo '<tr><td><a href="users.php?q='.web_h($r['referrer_id']).'">'.web_h($r['referrer_id']).'</a></td><td>'.$refs.'</td><td>'.number_format((int)$r['active_refs']).'</td><td>'.max(0,$targetVip-$refs).'</td></tr>'; } web_table_end(); endif; ?></div>
<div class="panel"><h3>آخرین ثبت‌های رفرال</h3><?php if(!$recent): ?><div class="search-empty">موردی نیست.</div><?php else: web_table_start(['دعوت‌کننده','زیرمجموعه','وضعیت','پاداش ثبت‌نام','پاداش فعال','عضویت‌های زیرمجموعه','ثبت','بروزرسانی']); foreach($recent as $r){ echo '<tr><td>'.web_h($r['referrer_id']).'</td><td>'.web_h($r['referred_id']).'</td><td><span class="badge">'.web_h($r['status']).'</span></td><td>'.number_format((int)$r['signup_reward_amount']).'</td><td>'.number_format((int)$r['active_reward_amount']).'</td><td>'.number_format((int)$r['referred_join_count']).'</td><td>'.web_h($r['created_at']).'</td><td>'.web_h($r['updated_at']).'</td></tr>'; } web_table_end(); endif; ?></div>
<?php web_footer(); ?>
