<?php
require_once 'config/database.php';

echo "<h1>Teste do Sistema de Alertas em Tempo Real</h1>";

try {
    $pdo = Database::getConnection();
    
    echo "<h2>1. Verificando estrutura da tabela solicitacoes</h2>";
    
    // Verificar se existem solicitações aprovadas/negadas
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes WHERE status IN ('aprovada', 'negada')");
    $total = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
    echo "Total de solicitações aprovadas/negadas: $total<br>";
    
    if ($total == 0) {
        echo "<p style='color: orange;'>⚠️ Nenhuma solicitação aprovada/negada encontrada. O monitoramento só mostra solicitações processadas.</p>";
    }
    
    echo "<h2>2. Testando API de verificação de mudanças</h2>";
    
    $ultimaVerificacao = date('Y-m-d H:i:s', strtotime('-1 hour'));
    $url = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/api-monitoramento.php?acao=verificar_mudancas&ultima_verificacao=" . urlencode($ultimaVerificacao);
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    echo "URL: $url<br>";
    echo "HTTP Code: $httpCode<br>";
    
    if ($response) {
        $data = json_decode($response, true);
        if ($data && isset($data['success'])) {
            if ($data['success']) {
                echo "<p style='color: green;'>✅ API funcionando corretamente!</p>";
                echo "Total de mudanças encontradas: " . $data['data']['total_mudancas'] . "<br>";
                
                if (!empty($data['data']['mudancas'])) {
                    echo "<h3>Mudanças detectadas:</h3>";
                    echo "<ul>";
                    foreach ($data['data']['mudancas'] as $mudanca) {
                        echo "<li>Solicitação #{$mudanca['id']} - Status: {$mudanca['status']} - Cliente: {$mudanca['cliente']}</li>";
                    }
                    echo "</ul>";
                } else {
                    echo "<p>Nenhuma mudança detectada na última hora.</p>";
                }
            } else {
                echo "<p style='color: red;'>❌ Erro na API: " . ($data['message'] ?? 'Erro desconhecido') . "</p>";
            }
        } else {
            echo "<p style='color: red;'>❌ Resposta inválida da API</p>";
            echo "Resposta: " . htmlspecialchars($response) . "<br>";
        }
    } else {
        echo "<p style='color: red;'>❌ Erro de conexão com a API</p>";
    }
    
    echo "<h2>3. Testando API de listagem</h2>";
    
    $url = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/api-monitoramento.php?acao=listar&pagina=1&itens_por_pagina=5";
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    echo "HTTP Code: $httpCode<br>";
    
    if ($response) {
        $data = json_decode($response, true);
        if ($data && isset($data['success'])) {
            if ($data['success']) {
                echo "<p style='color: green;'>✅ API de listagem funcionando!</p>";
                echo "Total de solicitações: " . $data['data']['total'] . "<br>";
                echo "Solicitações retornadas: " . count($data['data']['solicitacoes']) . "<br>";
                
                if (!empty($data['data']['solicitacoes'])) {
                    echo "<h3>Primeiras solicitações:</h3>";
                    echo "<table border='1' style='border-collapse: collapse;'>";
                    echo "<tr><th>ID</th><th>Cliente</th><th>Status</th><th>Data Resposta</th></tr>";
                    foreach (array_slice($data['data']['solicitacoes'], 0, 3) as $solicitacao) {
                        echo "<tr>";
                        echo "<td>{$solicitacao['id']}</td>";
                        echo "<td>{$solicitacao['cliente']}</td>";
                        echo "<td>{$solicitacao['status']}</td>";
                        echo "<td>{$solicitacao['data_resposta']}</td>";
                        echo "</tr>";
                    }
                    echo "</table>";
                }
            } else {
                echo "<p style='color: red;'>❌ Erro na API: " . ($data['message'] ?? 'Erro desconhecido') . "</p>";
            }
        } else {
            echo "<p style='color: red;'>❌ Resposta inválida da API</p>";
        }
    } else {
        echo "<p style='color: red;'>❌ Erro de conexão com a API</p>";
    }
    
    echo "<h2>4. Instruções para testar alertas</h2>";
    echo "<p>Para testar os alertas em tempo real:</p>";
    echo "<ol>";
    echo "<li>Abra a tela de monitoramento: <a href='https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/monitoramento-solicitacoes.html' target='_blank'>Monitoramento</a></li>";
    echo "<li>Certifique-se de que os alertas estão ativados (botão 'Alertas ON')</li>";
    echo "<li>Em outra aba, acesse o sistema de gestores e aprove/negue uma solicitação</li>";
    echo "<li>Volte para a tela de monitoramento e aguarde até 10 segundos</li>";
    echo "<li>Você deve ouvir uma sirene e ver um banner de alerta</li>";
    echo "<li>A solicitação processada deve aparecer piscando na lista</li>";
    echo "</ol>";
    
    echo "<h2>5. Criar solicitações de teste (se necessário)</h2>";
    
    if ($total == 0) {
        echo "<p>Nenhuma solicitação aprovada/negada encontrada. Deseja criar algumas para teste?</p>";
        echo "<form method='post'>";
        echo "<input type='submit' name='criar_testes' value='Criar Solicitações de Teste' style='background: #007bff; color: white; padding: 10px; border: none; border-radius: 5px; cursor: pointer;'>";
        echo "</form>";
        
        if (isset($_POST['criar_testes'])) {
            echo "<h3>Criando solicitações de teste...</h3>";
            
            // Buscar dados necessários
            $stmt = $pdo->query("SELECT id FROM clientes LIMIT 1");
            $cliente = $stmt->fetch(PDO::FETCH_ASSOC);
            
            $stmt = $pdo->query("SELECT id FROM motoristas LIMIT 1");
            $motorista = $stmt->fetch(PDO::FETCH_ASSOC);
            
            $stmt = $pdo->query("SELECT id FROM veiculos LIMIT 1");
            $veiculo = $stmt->fetch(PDO::FETCH_ASSOC);
            
            $stmt = $pdo->query("SELECT id FROM gestores LIMIT 1");
            $gestor = $stmt->fetch(PDO::FETCH_ASSOC);
            
            if ($cliente && $motorista && $veiculo && $gestor) {
                $solicitacoes = [
                    [
                        'cliente_id' => $cliente['id'],
                        'motorista_id' => $motorista['id'],
                        'veiculo_id' => $veiculo['id'],
                        'gestor_id' => $gestor['id'],
                        'motivo' => 'Teste de Aprovação',
                        'status' => 'aprovada',
                        'prioridade' => 'alta',
                        'observacoes' => 'Solicitação de teste aprovada'
                    ],
                    [
                        'cliente_id' => $cliente['id'],
                        'motorista_id' => $motorista['id'],
                        'veiculo_id' => $veiculo['id'],
                        'gestor_id' => $gestor['id'],
                        'motivo' => 'Teste de Negação',
                        'status' => 'negada',
                        'prioridade' => 'normal',
                        'observacoes' => 'Solicitação de teste negada'
                    ]
                ];
                
                $stmt = $pdo->prepare("INSERT INTO solicitacoes (cliente_id, motorista_id, veiculo_id, gestor_id, motivo, status, prioridade, observacoes, data_solicitacao, data_resposta) VALUES (?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW())");
                
                foreach ($solicitacoes as $solicitacao) {
                    $stmt->execute([
                        $solicitacao['cliente_id'],
                        $solicitacao['motorista_id'],
                        $solicitacao['veiculo_id'],
                        $solicitacao['gestor_id'],
                        $solicitacao['motivo'],
                        $solicitacao['status'],
                        $solicitacao['prioridade'],
                        $solicitacao['observacoes']
                    ]);
                }
                
                echo "<p style='color: green;'>✅ Solicitações de teste criadas com sucesso!</p>";
                echo "<p>Recarregue a página para ver os novos dados.</p>";
            } else {
                echo "<p style='color: red;'>❌ Erro: Dados necessários não encontrados no banco</p>";
            }
        }
    }
    
    echo "<h2>6. Status do Sistema</h2>";
    echo "<p>✅ API de monitoramento funcionando</p>";
    echo "<p>✅ Sistema de alertas implementado</p>";
    echo "<p>✅ Verificação em tempo real ativa (a cada 10 segundos)</p>";
    echo "<p>✅ Sirene e banner de alerta configurados</p>";
    echo "<p>✅ Destaque visual para solicitações processadas</p>";
    
    echo "<h2>7. Links Úteis</h2>";
    echo "<ul>";
    echo "<li><a href='https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/monitoramento-solicitacoes.html' target='_blank'>Tela de Monitoramento</a></li>";
    echo "<li><a href='https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/' target='_blank'>Painel Administrativo</a></li>";
    echo "</ul>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}
?> 
