<?php
/**
 * VERIFICAR ENDEREÇOS NAS VIAGENS
 * Verificar se endereços estão sendo salvos corretamente
 */

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

// Conectar ao banco
function conectarBanco() {
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    try {
        $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password, [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        ]);
        return $pdo;
    } catch (PDOException $e) {
        die('Erro de conexão: ' . $e->getMessage());
    }
}

echo "<h1>🔍 VERIFICAÇÃO DE ENDEREÇOS</h1>";

try {
    $pdo = conectarBanco();
    
    // Verificar viagens com/sem endereços
    echo "<h2>📊 Status dos Endereços</h2>";
    
    $stmt = $pdo->query("
        SELECT 
            COUNT(*) as total,
            SUM(CASE WHEN endereco_inicial IS NOT NULL AND endereco_inicial != '' THEN 1 ELSE 0 END) as com_endereco_inicial,
            SUM(CASE WHEN endereco_final IS NOT NULL AND endereco_final != '' THEN 1 ELSE 0 END) as com_endereco_final
        FROM viagens
    ");
    $stats = $stmt->fetch();
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr><th>Métrica</th><th>Quantidade</th><th>Percentual</th></tr>";
    echo "<tr>";
    echo "<td><strong>Total de viagens</strong></td>";
    echo "<td>{$stats['total']}</td>";
    echo "<td>100%</td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td>Com endereço inicial</td>";
    echo "<td>{$stats['com_endereco_inicial']}</td>";
    echo "<td>" . round(($stats['com_endereco_inicial'] / $stats['total']) * 100, 1) . "%</td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td>Com endereço final</td>";
    echo "<td>{$stats['com_endereco_final']}</td>";
    echo "<td>" . round(($stats['com_endereco_final'] / $stats['total']) * 100, 1) . "%</td>";
    echo "</tr>";
    echo "</table>";
    
    // Mostrar últimas 10 viagens
    echo "<h2>📋 Últimas 10 Viagens</h2>";
    
    $stmt = $pdo->query("
        SELECT 
            id,
            cliente,
            data_inicio,
            latitude_inicial,
            longitude_inicial,
            endereco_inicial,
            latitude_final,
            longitude_final,
            endereco_final
        FROM viagens 
        ORDER BY data_inicio DESC 
        LIMIT 10
    ");
    $viagens = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%; font-size: 12px;'>";
    echo "<tr>";
    echo "<th>ID</th>";
    echo "<th>Cliente</th>";
    echo "<th>Data</th>";
    echo "<th>GPS Inicial</th>";
    echo "<th>Endereço Inicial</th>";
    echo "<th>GPS Final</th>";
    echo "<th>Endereço Final</th>";
    echo "</tr>";
    
    foreach ($viagens as $v) {
        echo "<tr>";
        echo "<td><strong>{$v['id']}</strong></td>";
        echo "<td>{$v['cliente']}</td>";
        echo "<td>" . date('d/m H:i', strtotime($v['data_inicio'])) . "</td>";
        echo "<td>" . ($v['latitude_inicial'] ? "{$v['latitude_inicial']}, {$v['longitude_inicial']}" : '-') . "</td>";
        echo "<td style='max-width: 200px; word-wrap: break-word;'>" . ($v['endereco_inicial'] ?: '<em style="color: red;">VAZIO</em>') . "</td>";
        echo "<td>" . ($v['latitude_final'] ? "{$v['latitude_final']}, {$v['longitude_final']}" : '-') . "</td>";
        echo "<td style='max-width: 200px; word-wrap: break-word;'>" . ($v['endereco_final'] ?: '<em style="color: red;">VAZIO</em>') . "</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // Teste de geocodificação
    echo "<h2>🌍 Teste de Geocodificação</h2>";
    
    if (isset($_GET['testar_geo'])) {
        $lat = $_GET['lat'] ?? -9.7518;
        $lng = $_GET['lng'] ?? -36.6618;
        
        echo "<h3>Testando coordenadas: $lat, $lng</h3>";
        
        // Teste com OpenStreetMap Nominatim
        $url = "https://nominatim.openstreetmap.org/reverse?format=json&lat=$lat&lon=$lng&zoom=18&addressdetails=1";
        
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        curl_setopt($ch, CURLOPT_USERAGENT, 'ControleDeFretas/1.0');
        
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $error = curl_error($ch);
        curl_close($ch);
        
        echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
        echo "<strong>URL:</strong> $url<br>";
        echo "<strong>HTTP Code:</strong> $httpCode<br>";
        
        if ($error) {
            echo "<strong>❌ Erro cURL:</strong> $error<br>";
        }
        
        if ($response) {
            $json = json_decode($response, true);
            if ($json && isset($json['display_name'])) {
                echo "<strong>✅ Endereço encontrado:</strong><br>";
                echo "<strong>Completo:</strong> {$json['display_name']}<br>";
                
                if (isset($json['address'])) {
                    echo "<strong>Detalhes:</strong><br>";
                    foreach ($json['address'] as $key => $value) {
                        echo "- $key: $value<br>";
                    }
                }
            } else {
                echo "<strong>❌ Resposta inválida:</strong><br>";
                echo "<pre>" . htmlspecialchars($response) . "</pre>";
            }
        } else {
            echo "<strong>❌ Sem resposta</strong><br>";
        }
        echo "</div>";
    } else {
        echo "<p>Clique para testar a geocodificação:</p>";
        echo "<ul>";
        echo "<li><a href='?testar_geo=1&lat=-9.7518&lng=-36.6618'>🌍 Testar Arapiraca Centro</a></li>";
        echo "<li><a href='?testar_geo=1&lat=-11.0163695&lng=-37.0761792'>🌍 Testar Coordenada da Viagem</a></li>";
        echo "</ul>";
    }
    
    // Ações recomendadas
    echo "<h2>🔧 Ações Recomendadas</h2>";
    
    if ($stats['com_endereco_inicial'] == 0) {
        echo "<div style='background: #fff3cd; padding: 15px; border: 1px solid #ffeaa7; border-radius: 5px;'>";
        echo "<h4>⚠️ PROBLEMA: Nenhuma viagem tem endereço inicial!</h4>";
        echo "<p><strong>Possíveis causas:</strong></p>";
        echo "<ul>";
        echo "<li>API de geocodificação não está funcionando</li>";
        echo "<li>App não está enviando endereços</li>";
        echo "<li>Função de geocodificação não está sendo chamada</li>";
        echo "</ul>";
        echo "</div>";
    }
    
    echo "<div style='background: #e8f5e8; padding: 15px; border: 1px solid #27ae60; border-radius: 5px;'>";
    echo "<h4>✅ Soluções:</h4>";
    echo "<ol>";
    echo "<li><strong>Testar geocodificação</strong> - Use os links acima</li>";
    echo "<li><strong>Corrigir API</strong> - Adicionar geocodificação automática</li>";
    echo "<li><strong>Atualizar viagens existentes</strong> - Converter GPS em endereços</li>";
    echo "</ol>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div style='color: red; font-weight: bold;'>ERRO: " . $e->getMessage() . "</div>";
}

?>

<style>
table { border-collapse: collapse; width: 100%; margin: 10px 0; }
th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
th { background: #f0f0f0; font-weight: bold; }
</style> 
