<?php
// teste_api_direto_simples.php - VERSÃO SEM CURL
error_reporting(E_ALL);
ini_set('display_errors', 1);

echo "<h2>📞 Teste Direto da API de Chamadas (Versão Simples)</h2>";

// Iniciar sessão
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// Forçar dados de sessão para teste
$_SESSION['usuario_id'] = 100;
$_SESSION['tenant_id'] = 17;

echo "<h3>✅ Sessão configurada:</h3>";
echo "Usuario ID: " . $_SESSION['usuario_id'] . "<br>";
echo "Tenant ID: " . $_SESSION['tenant_id'] . "<br>";

// Incluir a conexão
require_once 'conexao.php';

if (!isset($conn) || $conn->connect_error) {
    die("❌ Erro de conexão: " . $conn->connect_error);
}
echo "✅ Conexão com banco OK<br>";

// Teste 1: Inserção Direta no Banco (já funcionou)
echo "<h3>Teste 1: Inserção Direta no Banco</h3>";

$tenant_id = 17;
$usuario_id = 100;
$numero_origem = '+5548998298300';
$numero_destino = '+5511999999999';
$duracao = 30;
$status = 'realizada';
$custo = number_format(($duracao / 60) * 0.10, 4, '.', '');

$sql = "
    INSERT INTO chamadas_telefonicas 
    (tenant_id, usuario_id, numero_origem, numero_destino, duracao, status, custo, data_hora_inicio)
    VALUES (?, ?, ?, ?, ?, ?, ?, NOW())
";

$stmt = $conn->prepare($sql);
if (!$stmt) {
    echo "❌ Erro no prepare: " . $conn->error . "<br>";
} else {
    $stmt->bind_param("iissids", 
        $tenant_id,
        $usuario_id,
        $numero_origem,
        $numero_destino,
        $duracao,
        $status,
        $custo
    );
    
    if ($stmt->execute()) {
        $id = $stmt->insert_id;
        echo "✅ Inserção direta funcionou! ID: $id<br>";
    } else {
        echo "❌ Erro na execução: " . $stmt->error . "<br>";
    }
    $stmt->close();
}

// Teste 2: Chamar a função registrarChamada diretamente
echo "<h3>Teste 2: Chamar registrarChamada() diretamente</h3>";

// Preparar dados
$dados_teste = [
    'numero_destino' => '+5511888888888',
    'duracao' => 45,
    'status' => 'realizada'
];

echo "Dados do teste: <pre>" . print_r($dados_teste, true) . "</pre>";

// Salvar o input original
$original_input = file_get_contents('php://input');

// Simular o input
$_SERVER['REQUEST_METHOD'] = 'POST';
$_GET['acao'] = 'registrar-chamada';

// Incluir a API (mas vamos verificar se a classe já existe)
if (!class_exists('WebphoneAPI')) {
    echo "Incluindo api_webphone.php...<br>";
    require_once 'api_webphone.php';
} else {
    echo "Classe WebphoneAPI já existe<br>";
}

// Criar instância da API
try {
    echo "Criando instância da API...<br>";
    $api = new WebphoneAPI($conn);
    echo "✅ API instanciada<br>";
    
    // Chamar o método diretamente
    echo "Chamando registrarChamada()...<br>";
    
    // Simular o input via POST
    $_POST['dados'] = json_encode($dados_teste);
    
    // Executar
    $api->registrarChamada();
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "<br>";
}

// Restaurar input original
file_put_contents('php://input', $original_input);

// Teste 3: Verificar últimas chamadas
echo "<h3>Teste 3: Últimas chamadas no banco</h3>";

$result = $conn->query("
    SELECT id, data_hora_inicio, numero_origem, numero_destino, duracao, custo 
    FROM chamadas_telefonicas 
    WHERE tenant_id = 17 
    ORDER BY id DESC 
    LIMIT 5
");

if ($result && $result->num_rows > 0) {
    echo "<table border='1' cellpadding='5'>";
    echo "<tr><th>ID</th><th>Data</th><th>Origem</th><th>Destino</th><th>Duração</th><th>Custo</th></tr>";
    while ($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>{$row['id']}</td>";
        echo "<td>{$row['data_hora_inicio']}</td>";
        echo "<td>{$row['numero_origem']}</td>";
        echo "<td>{$row['numero_destino']}</td>";
        echo "<td>{$row['duracao']}s</td>";
        echo "<td>R$ " . number_format($row['custo'], 2) . "</td>";
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo "Nenhuma chamada encontrada.<br>";
}

// Teste 4: Verificar arquivo de log
echo "<h3>Teste 4: Arquivo de Log</h3>";

$log_file = __DIR__ . '/api_debug.log';
if (file_exists($log_file)) {
    echo "✅ Arquivo de log existe<br>";
    echo "Tamanho: " . filesize($log_file) . " bytes<br>";
    echo "Última modificação: " . date('Y-m-d H:i:s', filemtime($log_file)) . "<br>";
    
    echo "Últimas 10 linhas:<br>";
    echo "<pre style='background:#f0f0f0; padding:10px; max-height:300px; overflow:auto'>";
    $lines = file($log_file);
    $last_lines = array_slice($lines, -10);
    echo implode('', $last_lines);
    echo "</pre>";
} else {
    echo "❌ Arquivo de log NÃO existe<br>";
}
?>