<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h2>🔧 Corrigir Viagem GPS</h2>";

try {
    require_once 'config/database.php';
    $pdo = Database::getConnection();
    
    // 1. Verificar situação atual
    echo "<h3>1. Situação Atual</h3>";
    
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = ?");
    $stmt->execute([1]);
    $viagem = $stmt->fetch();
    
    if ($viagem) {
        echo "<div style='background: #fff3e0; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>📊 Viagem 1 - Dados Atuais:</h4>";
        echo "<p><strong>ID:</strong> {$viagem['id']}</p>";
        echo "<p><strong>Cliente:</strong> {$viagem['cliente']}</p>";
        echo "<p><strong>Data Início:</strong> {$viagem['data_inicio']}</p>";
        echo "<p><strong>Data Fim:</strong> " . ($viagem['data_fim'] ?? 'NULL') . "</p>";
        echo "<p><strong>KM GPS Final:</strong> {$viagem['km_gps_final']}</p>";
        echo "</div>";
        
        // Verificar se há inconsistência de tempo
        if ($viagem['data_fim'] && strtotime($viagem['data_fim']) < strtotime($viagem['data_inicio'])) {
            echo "<div style='background: #ffebee; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
            echo "<h4>❌ ERRO: Data de fim anterior à data de início!</h4>";
            echo "<p>Isso indica que a viagem foi finalizada incorretamente.</p>";
            echo "</div>";
        }
    }
    
    // 2. Verificar pontos GPS
    echo "<h3>2. Pontos GPS</h3>";
    
    $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = ?");
    $stmt->execute([1]);
    $result = $stmt->fetch();
    
    echo "📊 Total de pontos GPS: " . $result['total'] . "<br>";
    
    if ($result['total'] > 0) {
        $stmt = $pdo->prepare("SELECT * FROM rastreamento_tempo_real WHERE viagem_id = ? ORDER BY timestamp ASC");
        $stmt->execute([1]);
        $pontos = $stmt->fetchAll();
        
        echo "<div style='background: #e8f5e8; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>✅ Pontos GPS encontrados:</h4>";
        foreach ($pontos as $i => $ponto) {
            echo "<p><strong>Ponto " . ($i + 1) . ":</strong> {$ponto['timestamp']} | Lat: {$ponto['latitude']} | Lon: {$ponto['longitude']} | Vel: {$ponto['velocidade']} km/h</p>";
        }
        echo "</div>";
    }
    
    // 3. Corrigir viagem se necessário
    if (isset($_POST['corrigir_viagem'])) {
        echo "<h3>3. Corrigindo Viagem</h3>";
        
        // Se a viagem foi finalizada incorretamente, vamos reativá-la
        if ($viagem['data_fim'] && strtotime($viagem['data_fim']) < strtotime($viagem['data_inicio'])) {
            $stmt = $pdo->prepare("UPDATE viagens SET data_fim = NULL WHERE id = ?");
            $stmt->execute([1]);
            
            echo "<div style='background: #e8f5e8; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
            echo "<h4>✅ Viagem reativada!</h4>";
            echo "<p>A data de fim foi removida. A viagem agora está em andamento novamente.</p>";
            echo "</div>";
        } else {
            echo "<div style='background: #fff3e0; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
            echo "<h4>ℹ️ Viagem não precisa de correção</h4>";
            echo "<p>Os dados da viagem estão consistentes.</p>";
            echo "</div>";
        }
    }
    
    // 4. Verificar se há mais pontos GPS recentes
    echo "<h3>4. Verificar Pontos GPS Recentes</h3>";
    
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 1 HOUR)");
    $result = $stmt->fetch();
    
    echo "📊 Pontos GPS na última hora: " . $result['total'] . "<br>";
    
    if ($result['total'] > 0) {
        $stmt = $pdo->query("SELECT * FROM rastreamento_tempo_real WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 1 HOUR) ORDER BY timestamp DESC LIMIT 10");
        $pontosRecentes = $stmt->fetchAll();
        
        echo "<div style='background: #e8f5e8; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>✅ Pontos GPS recentes:</h4>";
        foreach ($pontosRecentes as $ponto) {
            echo "<p><strong>{$ponto['timestamp']}</strong> | Viagem: {$ponto['viagem_id']} | Lat: {$ponto['latitude']} | Lon: {$ponto['longitude']} | Vel: {$ponto['velocidade']} km/h</p>";
        }
        echo "</div>";
    }
    
    // 5. Formulário para corrigir
    echo "<h3>5. Ação</h3>";
    echo "<form method='post' style='background: #e3f2fd; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h4>🔧 Corrigir Viagem:</h4>";
    echo "<p>Se a viagem foi finalizada incorretamente, clique no botão abaixo para reativá-la:</p>";
    echo "<button type='submit' name='corrigir_viagem' style='background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🔧 Corrigir Viagem</button>";
    echo "</form>";
    
    // 6. Próximos passos
    echo "<h3>6. Próximos Passos</h3>";
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h4>📋 Para testar:</h4>";
    echo "<ol>";
    echo "<li><strong>Se a viagem foi corrigida:</strong> Inicie uma nova viagem no app</li>";
    echo "<li><strong>Monitore os logs:</strong> Verifique se aparecem mais pontos GPS</li>";
    echo "<li><strong>Teste por 2-3 minutos:</strong> Deixe o app coletando dados GPS</li>";
    echo "<li><strong>Verifique o resultado:</strong> Execute este script novamente</li>";
    echo "</ol>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "<br>";
}

echo "<h3>✅ Análise Concluída!</h3>";
echo "<p><strong>Resumo:</strong> O GPS está funcionando (1 ponto coletado), mas a viagem pode ter sido finalizada incorretamente.</p>";
?>
