<?php
// chatbot_gerar_teste_final2.php
// CORREÇÃO: Uso de __DIR__ para evitar erro de "arquivo não encontrado" quando chamado da API

// Tenta carregar o banco de forma inteligente
if (!function_exists('conectar_bd')) {
    if (file_exists(__DIR__ . '/includes/db.php')) {
        require_once __DIR__ . '/includes/db.php';
    } elseif (file_exists(__DIR__ . '/../includes/db.php')) {
        require_once __DIR__ . '/../includes/db.php';
    }
}

function confirme_adicionar_testes($name, $usuario, $senha, $conexoes, $plano_id, $obs, $horas) {
    try {
        global $pdo; 
        
        // Garante conexão
        if (!isset($pdo) || !$pdo) {
            if(function_exists('conectar_bd')) {
                $pdo = conectar_bd();
            } else {
                return ['icon'=>'error', 'msg'=>'Erro grave: Conexão com banco perdida.'];
            }
        }
        $conn = $pdo;

        // Pega o ID do Admin (Dono do teste)
        global $admin_id_api; 
        $dono = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : ($admin_id_api ?? 0);

        // Se falhar, tenta pegar o primeiro admin do banco como fallback (segurança para não falhar teste)
        if($dono == 0) {
            $stmt_adm = $conn->query("SELECT id FROM adm LIMIT 1");
            $dono = $stmt_adm->fetchColumn();
        }

        if(!$dono) return ['icon'=>'error', 'msg'=>'Nenhum revendedor identificado para criar a conta.'];

        // Calcula vencimento
        $vencimento = date("Y-m-d H:i:s", strtotime("+$horas hours"));
        
        // Verifica duplicidade
        $check = $conn->prepare("SELECT id FROM users WHERE username = ?");
        $check->execute([$usuario]);
        if($check->rowCount() > 0) {
            return ['icon' => 'error', 'msg' => 'Usuário já existe. Tente novamente.'];
        }

        // === QUERY BLINDADA ===
        // Preenche notes e bouquets para evitar erro de campo obrigatório
        $sql = "INSERT INTO users 
                (username, password, revendedor_id, expire_date, active, is_trial, notes, bouquets, max_connections) 
                VALUES 
                (?, ?, ?, ?, 1, 1, 'Chatbot Auto', '[]', ?)";
        
        $stmt = $conn->prepare($sql);
        $sucesso = $stmt->execute([
            $usuario,       
            $senha,         
            $dono,
            $vencimento,
            $conexoes
        ]);

        if ($sucesso) {
            return ['icon' => 'success', 'msg' => 'Teste criado com sucesso.'];
        } else {
            $err = $stmt->errorInfo();
            return ['icon' => 'error', 'msg' => 'Erro SQL: ' . $err[2]];
        }

    } catch (Exception $e) {
        return ['icon' => 'error', 'msg' => "Erro PHP: " . $e->getMessage()];
    }
}
?>
