<?php
/**
 * Teste do Endpoint de Sincronização
 * Verifica se a API está respondendo corretamente
 */

header('Content-Type: text/html; charset=UTF-8');

?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>🔄 Teste do Endpoint de Sincronização</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; background: #f5f5f5; }
        .container { max-width: 1000px; margin: 0 auto; }
        .card { background: white; border-radius: 8px; padding: 20px; margin: 15px 0; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
        .success { background: #e8f5e8; border-left: 4px solid #4CAF50; }
        .warning { background: #fff3cd; border-left: 4px solid #FFC107; }
        .error { background: #f8d7da; border-left: 4px solid #DC3545; }
        .info { background: #d1ecf1; border-left: 4px solid #17A2B8; }
        
        pre { background: #f8f9fa; padding: 15px; border-radius: 4px; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word; }
        .json { font-family: 'Courier New', monospace; font-size: 12px; }
        .status-ok { color: #28a745; font-weight: bold; }
        .status-error { color: #dc3545; font-weight: bold; }
        
        table { width: 100%; border-collapse: collapse; margin: 10px 0; }
        table, th, td { border: 1px solid #ddd; }
        th, td { padding: 8px 12px; text-align: left; }
        th { background: #f8f9fa; font-weight: bold; }
    </style>
</head>
<body>

<div class="container">
    <h1>🔄 Teste do Endpoint de Sincronização</h1>
    <p>Verificando se a API de sincronização está funcionando corretamente.</p>

    <?php
    // URLs para testar
    $baseUrl = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php";
    $testUrls = [
        "Endpoint Completo" => "$baseUrl/api/sync/dados-completos.php?ultima_sync=1970-01-01%2000:00:00&versao_app=1.0.0",
        "Teste Simples" => "$baseUrl/api/sync/dados-completos.php",
        "Com Timestamp" => "$baseUrl/api/sync/dados-completos.php?ultima_sync=" . urlencode(date('Y-m-d H:i:s', strtotime('-1 hour')))
    ];
    
    foreach ($testUrls as $nome => $url) {
        echo "<div class='card info'>";
        echo "<h3>📡 Teste: $nome</h3>";
        echo "<p><strong>URL:</strong> <code>$url</code></p>";
        
        // Fazer a requisição
        echo "<h4>🔄 Fazendo requisição...</h4>";
        
        $startTime = microtime(true);
        
        $context = stream_context_create([
            'http' => [
                'method' => 'GET',
                'timeout' => 30,
                'header' => [
                    'User-Agent: TestScript/1.0',
                    'Accept: application/json'
                ]
            ]
        ]);
        
        $response = @file_get_contents($url, false, $context);
        $endTime = microtime(true);
        $responseTime = round(($endTime - $startTime) * 1000, 2);
        
        if ($response === false) {
            echo "<div class='error'>";
            echo "<p class='status-error'>❌ FALHA NA REQUISIÇÃO</p>";
            echo "<p>Não foi possível conectar ao endpoint.</p>";
            
            $error = error_get_last();
            if ($error) {
                echo "<p><strong>Erro:</strong> {$error['message']}</p>";
            }
            
            echo "</div>";
        } else {
            echo "<div class='success'>";
            echo "<p class='status-ok'>✅ REQUISIÇÃO BEM-SUCEDIDA</p>";
            echo "<p><strong>Tempo de resposta:</strong> {$responseTime}ms</p>";
            echo "<p><strong>Tamanho da resposta:</strong> " . strlen($response) . " bytes</p>";
            
            // Tentar decodificar JSON
            $jsonData = json_decode($response, true);
            
            if (json_last_error() === JSON_ERROR_NONE) {
                echo "<h4>✅ JSON Válido</h4>";
                
                // Verificar estrutura da resposta
                if (isset($jsonData['sucesso'])) {
                    if ($jsonData['sucesso'] === true) {
                        echo "<p class='status-ok'>✅ Status: Sucesso</p>";
                        
                        if (isset($jsonData['dados'])) {
                            echo "<h5>📊 Dados Sincronizados:</h5>";
                            echo "<table>";
                            echo "<tr><th>Tipo</th><th>Quantidade</th></tr>";
                            
                            $tipos = ['motoristas', 'veiculos', 'clientes'];
                            foreach ($tipos as $tipo) {
                                $count = isset($jsonData['dados'][$tipo]) ? count($jsonData['dados'][$tipo]) : 0;
                                echo "<tr><td>".ucfirst($tipo)."</td><td>$count</td></tr>";
                            }
                            echo "</table>";
                            
                            // Mostrar alguns dados de exemplo
                            if (isset($jsonData['dados']['motoristas']) && !empty($jsonData['dados']['motoristas'])) {
                                echo "<h5>👥 Motoristas Encontrados:</h5>";
                                echo "<table>";
                                echo "<tr><th>ID</th><th>Nome</th><th>Usuário</th><th>Matrícula</th><th>Status</th></tr>";
                                
                                foreach (array_slice($jsonData['dados']['motoristas'], 0, 5) as $motorista) {
                                    echo "<tr>";
                                    echo "<td>{$motorista['id']}</td>";
                                    echo "<td>{$motorista['nome']}</td>";
                                    echo "<td>{$motorista['usuario']}</td>";
                                    echo "<td>{$motorista['matricula']}</td>";
                                    echo "<td>{$motorista['status']}</td>";
                                    echo "</tr>";
                                }
                                echo "</table>";
                                
                                if (count($jsonData['dados']['motoristas']) > 5) {
                                    echo "<p><em>... e mais " . (count($jsonData['dados']['motoristas']) - 5) . " motoristas</em></p>";
                                }
                            }
                        }
                        
                    } else {
                        echo "<p class='status-error'>❌ Status: Erro</p>";
                        if (isset($jsonData['mensagem'])) {
                            echo "<p><strong>Mensagem:</strong> {$jsonData['mensagem']}</p>";
                        }
                    }
                } else {
                    echo "<p class='status-error'>⚠️ Resposta sem campo 'sucesso'</p>";
                }
                
                // Mostrar JSON completo (limitado)
                echo "<h4>📋 Resposta JSON (primeiros 2000 caracteres):</h4>";
                $jsonDisplay = json_encode($jsonData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
                if (strlen($jsonDisplay) > 2000) {
                    $jsonDisplay = substr($jsonDisplay, 0, 2000) . "\n... (truncado)";
                }
                echo "<pre class='json'>$jsonDisplay</pre>";
                
            } else {
                echo "<div class='error'>";
                echo "<h4>❌ JSON Inválido</h4>";
                echo "<p><strong>Erro JSON:</strong> " . json_last_error_msg() . "</p>";
                echo "<h5>Resposta Raw (primeiros 1000 caracteres):</h5>";
                echo "<pre>" . htmlspecialchars(substr($response, 0, 1000)) . (strlen($response) > 1000 ? "\n... (truncado)" : "") . "</pre>";
                echo "</div>";
            }
            
            echo "</div>";
        }
        
        echo "</div>";
        echo "<hr>";
    }
    ?>
    
    <div class="card success">
        <h3>✅ Próximos Passos</h3>
        
        <?php if (isset($jsonData) && $jsonData && isset($jsonData['sucesso']) && $jsonData['sucesso']): ?>
            <p><strong>🎉 Endpoint funcionando perfeitamente!</strong></p>
            <ol>
                <li>✅ Endpoint de sincronização está respondendo</li>
                <li>✅ Dados estão sendo retornados corretamente</li>
                <li>🔄 Agora teste o app Android</li>
                <li>📱 A sincronização automática deve funcionar</li>
                <li>🔐 O login com Thalluan deve funcionar</li>
            </ol>
            
            <p><strong>💡 Para testar no app:</strong></p>
            <ul>
                <li>Instale o APK atualizado</li>
                <li>Aguarde a sincronização automática (verá um toast)</li>
                <li>Faça login com: <code>thalluan</code> / <code>123456</code></li>
            </ul>
        <?php else: ?>
            <p><strong>⚠️ Ainda há problemas no endpoint.</strong></p>
            <ol>
                <li>Verifique se o arquivo <code>api/sync/dados-completos.php</code> existe</li>
                <li>Verifique as permissões do arquivo</li>
                <li>Verifique a conexão com o banco de dados</li>
                <li>Verifique os logs do servidor web</li>
            </ol>
        <?php endif; ?>
    </div>

</div>

</body>
</html> 
