<?php
// teste_api_com_sessao.php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Iniciar sessão e configurar dados do usuário
session_start();
$_SESSION['usuario_id'] = 100;
$_SESSION['tenant_id'] = 17;

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

// Incluir a conexão para verificar se o usuário existe
require_once 'conexao.php';

$stmt = $conn->prepare("SELECT nome, email, telefone FROM usuarios WHERE id = ? AND tenant_id = ?");
$stmt->bind_param("ii", $_SESSION['usuario_id'], $_SESSION['tenant_id']);
$stmt->execute();
$result = $stmt->get_result();
$usuario = $result->fetch_assoc();

if ($usuario) {
    echo "<h3>✅ Usuário encontrado no banco:</h3>";
    echo "Nome: " . $usuario['nome'] . "<br>";
    echo "Email: " . $usuario['email'] . "<br>";
    echo "Telefone: " . ($usuario['telefone'] ?: 'não informado') . "<br>";
} else {
    echo "<h3>❌ Usuário NÃO encontrado no banco!</h3>";
}

// Formulário para testar a API
?>
<!DOCTYPE html>
<html>
<head>
    <title>Teste API com Sessão</title>
    <style>
        body { font-family: Arial; padding: 20px; }
        .success { color: green; }
        .error { color: red; }
        pre { background: #f4f4f4; padding: 10px; }
    </style>
</head>
<body>
    <h2>📞 Teste da API com Sessão Configurada</h2>
    
    <form id="testForm">
        <h3>Dados da Chamada:</h3>
        <p>
            <label>Número Destino:</label><br>
            <input type="text" name="numero_destino" value="+5511888888888" size="30">
        </p>
        <p>
            <label>Duração (segundos):</label><br>
            <input type="number" name="duracao" value="45">
        </p>
        <p>
            <label>Status:</label><br>
            <select name="status">
                <option value="realizada">Realizada</option>
                <option value="nao_atendida">Não Atendida</option>
                <option value="ocupado">Ocupado</option>
            </select>
        </p>
        <p>
            <button type="submit">Registrar Chamada via API</button>
        </p>
    </form>
    
    <div id="resultado"></div>
    
    <h3>Teste Direto da Função registrarChamada():</h3>
    <button onclick="testarDireto()">Testar Chamada Direta</button>
    <div id="resultadoDireto"></div>
    
    <h3>Verificar Últimas Chamadas:</h3>
    <button onclick="verificarChamadas()">Atualizar</button>
    <div id="chamadas"></div>
    
    <script>
    // Teste via fetch (requisição AJAX)
    document.getElementById('testForm').addEventListener('submit', async (e) => {
        e.preventDefault();
        
        const formData = new FormData(e.target);
        const dados = {
            numero_destino: formData.get('numero_destino'),
            duracao: parseInt(formData.get('duracao')),
            status: formData.get('status')
        };
        
        document.getElementById('resultado').innerHTML = 'Enviando...';
        
        try {
            // Incluir o session ID na requisição
            const response = await fetch('api_webphone.php?acao=registrar-chamada', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-Requested-With': 'XMLHttpRequest'
                },
                credentials: 'same-origin', // IMPORTANTE: enviar cookies da sessão
                body: JSON.stringify(dados)
            });
            
            const text = await response.text();
            document.getElementById('resultado').innerHTML = '<pre>' + text + '</pre>';
            
        } catch (error) {
            document.getElementById('resultado').innerHTML = '<p class="error">Erro: ' + error + '</p>';
        }
    });
    
    // Teste direto incluindo o arquivo API (sem requisição HTTP)
    async function testarDireto() {
        document.getElementById('resultadoDireto').innerHTML = 'Testando...';
        
        // Fazer uma requisição para um script que inclui a API diretamente
        const response = await fetch('teste_inclusao_direta.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                numero_destino: '+5511888888888',
                duracao: 30,
                status: 'realizada'
            })
        });
        
        const text = await response.text();
        document.getElementById('resultadoDireto').innerHTML = '<pre>' + text + '</pre>';
    }
    
    async function verificarChamadas() {
        try {
            const response = await fetch('api_webphone.php?acao=historico&limite=10', {
                credentials: 'same-origin'
            });
            const data = await response.json();
            
            if (data.success) {
                let html = '<table border="1" cellpadding="5">';
                html += '<tr><th>ID</th><th>Data</th><th>Origem</th><th>Destino</th><th>Duração</th><th>Custo</th></tr>';
                
                data.chamadas.forEach(chamada => {
                    html += `<tr>
                        <td>${chamada.id}</td>
                        <td>${chamada.data_hora_inicio}</td>
                        <td>${chamada.numero_origem}</td>
                        <td>${chamada.numero_destino}</td>
                        <td>${chamada.duracao}s</td>
                        <td>R$ ${parseFloat(chamada.custo).toFixed(2)}</td>
                    </tr>`;
                });
                
                html += '</table>';
                document.getElementById('chamadas').innerHTML = html;
            } else {
                document.getElementById('chamadas').innerHTML = '<p class="error">Erro: ' + data.error + '</p>';
            }
        } catch (error) {
            document.getElementById('chamadas').innerHTML = '<p class="error">Erro: ' + error + '</p>';
        }
    }
    
    // Carregar chamadas ao abrir a página
    verificarChamadas();
    </script>
</body>
</html>