<?php require_once __DIR__.'/_layout.php'; web_require_perm('health'); web_header('تست سلامت سیستم');
function web_health_row($name,$ok,$detail=''){ return [$name,(bool)$ok,(string)$detail]; }
$pdo = web_pdo();
$checks=[];
$checks[]=web_health_row('config.php', is_file(WEB_ADMIN_ROOT.'/config.php'), is_file(WEB_ADMIN_ROOT.'/config.php')?'پیدا شد':'اول نصب را کامل کن');
$checks[]=web_health_row('config_db.php', is_file(WEB_ADMIN_ROOT.'/config_db.php'), is_file(WEB_ADMIN_ROOT.'/config_db.php')?'پیدا شد':'اگر دیتابیس فعال است باید وجود داشته باشد');
$checks[]=web_health_row('نسخه PHP', version_compare(PHP_VERSION,'7.4.0','>='), PHP_VERSION);
$checks[]=web_health_row('cURL', function_exists('curl_init'), function_exists('curl_init')?'فعال':'برای ارسال پیام و API لازم است');
$checks[]=web_health_row('PDO MySQL', class_exists('PDO') && in_array('mysql', PDO::getAvailableDrivers(), true), '');
$checks[]=web_health_row('اتصال دیتابیس', (bool)$pdo, $pdo?'وصل است':'وصل نیست');
$checks[]=web_health_row('رمز پنل وب', web_admin_hash() !== '', web_admin_hash() !== ''?'تنظیم شده':'install_web_panel.php را اجرا کن');
foreach(['cache','lib/kodam','lib/sessions','backups'] as $dir){
    $path=WEB_ADMIN_ROOT.'/'.$dir; if(!is_dir($path)) @mkdir($path,0775,true);
    $checks[]=web_health_row('دسترسی نوشتن '.$dir, is_dir($path) && is_writable($path), $path);
}
$https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off');
$checks[]=web_health_row('HTTPS پنل', $https, $https?'فعال':'برای وب‌هوک و امنیت بهتر HTTPS لازم است');
$channels = [
    'کانال جوین اجباری'=>'lib/kodam/channel.txt',
    'کانال سفارشات'=>'lib/kodam/channel2.txt',
    'کانال کد هدیه'=>'lib/kodam/giftch.txt',
];
foreach($channels as $label=>$path){ $v=trim((string)web_setting_get($path,'')); $checks[]=web_health_row($label, $v !== '', $v !== '' ? $v : 'تنظیم نشده'); }
if($pdo){
    $tables=['bot_users','bot_orders','bot_settings','bot_gift_codes','bot_support_tickets','bot_admin_logs','bot_cron_runs'];
    foreach($tables as $t){
        try{ $ok=(bool)$pdo->query("SHOW TABLES LIKE ".$pdo->quote($t))->fetchColumn(); }catch(Throwable $e){ $ok=false; }
        $checks[]=web_health_row('جدول '.$t,$ok,$ok?'وجود دارد':'نیاز به اجرای نصب/آپدیت');
    }
    try{ $last=$pdo->query("SELECT task_name,status,created_at FROM bot_cron_runs ORDER BY id DESC LIMIT 1")->fetch(PDO::FETCH_ASSOC); }
    catch(Throwable $e){ $last=null; }
    $checks[]=web_health_row('آخرین اجرای کرون', !empty($last), !empty($last)?(($last['task_name']??'-').' / '.($last['status']??'-').' / '.($last['created_at']??'-')):'هنوز لاگی ثبت نشده');
}
if(function_exists('bot_adv_install_test_text')) echo '<div class="panel"><h3>گزارش داخلی ربات</h3><pre>'.web_h(bot_adv_install_test_text()).'</pre></div>';
echo '<div class="panel"><h3>چک‌های اصلی</h3>';
web_table_start(['آیتم','وضعیت','توضیح']); foreach($checks as $c){ echo '<tr><td>'.web_h($c[0]).'</td><td>'.($c[1]?'<span class="badge green">سالم</span>':'<span class="badge red">نیاز بررسی</span>').'</td><td>'.web_h($c[2]).'</td></tr>'; } web_table_end(); echo '</div>';
echo '<div class="panel"><h3>تست‌های عملی</h3><p class="muted">برای تست ارسال به کانال‌ها برو صفحه کانال‌ها. برای تست متن‌ها برو صفحه متن‌ها و گزینه ذخیره و ارسال تست را بزن.</p><a class="btn" href="channels.php">مدیریت کانال‌ها</a> <a class="btn light" href="texts.php">تنظیم متن‌ها</a></div>';
web_footer();
