<?php
// modules/guardian/guardian.php
require_once '../../includes/auth.php';
checkLogin();
require_once '../../config/db.php';

// فقط ادمین به این ماژول دسترسی دارد
if (!isAdmin()) { die('Access Denied'); }

// ارتقای دیتابیس برای سیستم Guardian
try {
    $pdo->exec("CREATE TABLE IF NOT EXISTS `guardian_logs` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(100) NOT NULL,
      `volume_limit` float NOT NULL,
      `volume_used` float NOT NULL,
      `action_taken` varchar(50) NOT NULL,
      `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
    
    $pdo->exec("INSERT IGNORE INTO `global_settings` (`setting_key`, `setting_value`) VALUES ('guardian_status', '1')");
} catch (PDOException $e) {}

// API برای تغییر وضعیت (روشن/خاموش کردن کل سیستم)
if (isset($_POST['toggle_guardian'])) {
    ob_clean(); // پاکسازی هرگونه هشدار اضافی PHP برای جلوگیری از خرابی JSON
    header('Content-Type: application/json');
    $newState = $_POST['status'] === 'true' ? '1' : '0';
    $pdo->prepare("UPDATE global_settings SET setting_value = ? WHERE setting_key = 'guardian_status'")->execute([$newState]);
    echo json_encode(['success' => true, 'state' => $newState]);
    exit;
}

// API برای دریافت اطلاعات زنده مانیتورینگ
if (isset($_GET['ajax_guardian_live'])) {
    ob_clean(); // بسیار مهم برای حل مشکل "در حال اتصال..."
    header('Content-Type: application/json');
    
    $status = $pdo->query("SELECT setting_value FROM global_settings WHERE setting_key = 'guardian_status'")->fetchColumn();
    $recentLimits = $pdo->query("SELECT * FROM guardian_logs ORDER BY id DESC LIMIT 10")->fetchAll(PDO::FETCH_ASSOC);
    $totalLimitedToday = $pdo->query("SELECT COUNT(*) FROM guardian_logs WHERE DATE(created_at) = CURDATE()")->fetchColumn() ?: 0;
    
    echo json_encode([
        'is_active' => ($status === '1'),
        'total_caught_today' => $totalLimitedToday,
        'recent_logs' => $recentLimits
    ]);
    exit;
}

$guardianStatus = $pdo->query("SELECT setting_value FROM global_settings WHERE setting_key = 'guardian_status'")->fetchColumn() === '1';

require_once '../../includes/header.php';
?>

<div class="mb-8">
    <h1 class="text-2xl font-black text-gray-800 dark:text-white flex items-center gap-2">
        <span class="text-3xl">🛡️</span> ماژول Guardian (نگهبان اورشوت)
    </h1>
    <p class="text-xs font-bold text-gray-500 dark:text-gray-400 mt-2">سیستم مانیتورینگ تهاجمی و جلوگیری از مصرف اضافه (Overshoot) کاربران در سرور پاسارگارد.</p>
</div>

<div class="grid grid-cols-1 lg:grid-cols-12 gap-6 mb-8">
    <?php 
        require_once 'widgets/status_card.php'; 
        require_once 'widgets/radar_monitor.php'; 
    ?>
</div>

<?php 
require_once 'widgets/scripts.php';
require_once '../../includes/footer.php'; 
?>