<?php
// security_check.php - Segurança de Expiração e Agendamento

/**
 * Função para bloquear usuário e limpar sessão
 */
function force_block_user($mysqli, $user_id) {
    $sql = "UPDATE users SET 
            account_status = 'BLOCKED', 
            access_token = NULL, 
            session_status = 'OFF',
            scheduled_date = NULL,
            scheduled_status = NULL 
            WHERE id = ?";
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param("i", $user_id);
    $stmt->execute();
    $stmt->close();
}

// --- 1. VERIFICAÇÃO DE EXPIRAÇÃO DE LICENÇA (Tabela users_extensoes) ---
// Se a data de expiração passou, bloqueia o usuário
$sql_exp = "SELECT user_id FROM users_extensoes WHERE data_expiracao <= NOW()";
$res_exp = $mysqli->query($sql_exp);
if ($res_exp && $res_exp->num_rows > 0) {
    while ($row = $res_exp->fetch_assoc()) {
        force_block_user($mysqli, $row['user_id']);
    }
}

// --- 2. VERIFICAÇÃO DE BLOQUEIO AGENDADO (Tabela users) ---
// Verifica se chegou a data agendada e se o status pretendido é BLOCKED
$sql_sch = "SELECT id FROM users 
            WHERE scheduled_date <= NOW() 
            AND scheduled_status = 'BLOCKED' 
            AND account_status != 'BLOCKED'";
$res_sch = $mysqli->query($sql_sch);
if ($res_sch && $res_sch->num_rows > 0) {
    while ($row = $res_sch->fetch_assoc()) {
        force_block_user($mysqli, $row['id']);
    }
}
