<?php
/**
 * Função para validar se pode cadastrar mais usuários no tenant
 */
function podeCadastrarUsuario($conn, $tenant_id) {
    // Obter máximo de usuários do tenant
    $stmt = $conn->prepare("SELECT max_usuarios FROM tenants WHERE id = ?");
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($result->num_rows === 0) {
        return false;
    }
    
    $tenant = $result->fetch_assoc();
    $stmt->close();
    
    // Se max_usuarios for null, é ilimitado
    if ($tenant['max_usuarios'] === null) {
        return true;
    }
    
    // Contar usuários ativos no tenant
    $stmt = $conn->prepare("SELECT COUNT(*) as total FROM usuarios WHERE tenant_id = ? AND ativo = 'sim'");
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    $dados = $result->fetch_assoc();
    $stmt->close();
    
    // Verificar se ainda pode cadastrar
    return $dados['total'] < $tenant['max_usuarios'];
}

/**
 * Função para obter informações de uso de usuários
 */
function getInfoUsuariosTenant($conn, $tenant_id) {
    $stmt = $conn->prepare("
        SELECT 
            t.max_usuarios,
            (SELECT COUNT(*) FROM usuarios WHERE tenant_id = t.id AND ativo = 'sim') as usuarios_ativos
        FROM tenants t 
        WHERE t.id = ?
    ");
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($result->num_rows === 0) {
        return null;
    }
    
    $info = $result->fetch_assoc();
    $stmt->close();
    
    // Calcular percentual
    if ($info['max_usuarios'] !== null && $info['max_usuarios'] > 0) {
        $info['percentual_uso'] = ($info['usuarios_ativos'] / $info['max_usuarios']) * 100;
    } else {
        $info['percentual_uso'] = 0;
    }
    
    $info['usuarios_disponiveis'] = $info['max_usuarios'] === null 
        ? 'Ilimitado' 
        : max(0, $info['max_usuarios'] - $info['usuarios_ativos']);
    
    return $info;
}
?>