<?php
/**
 * Forçar Atualização da API
 * Este arquivo força o servidor a recarregar a API
 */

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

echo "<h1>🔄 Forçando Atualização da API</h1>";

// 1. Verificar se o arquivo principal está correto
echo "<h2>1️⃣ Verificando arquivo principal da API</h2>";

$arquivoPrincipal = 'api-simples-v2.php';
$arquivoBackup = 'api-simples-v2.php.backup.2025-09-02-16-01-40';

if (file_exists($arquivoPrincipal)) {
    echo "✅ Arquivo principal encontrado: $arquivoPrincipal<br>";
    
    // Verificar se contém as correções
    $conteudo = file_get_contents($arquivoPrincipal);
    
    if (strpos($conteudo, 'distancia_odometro_rota') !== false) {
        echo "✅ Arquivo contém 'distancia_odometro_rota' (correto)<br>";
    } else {
        echo "❌ Arquivo NÃO contém 'distancia_odometro_rota'<br>";
    }
    
    if (strpos($conteudo, 'km_real') !== false) {
        echo "❌ Arquivo ainda contém 'km_real' (INCORRETO)<br>";
    } else {
        echo "✅ Arquivo NÃO contém 'km_real' (correto)<br>";
    }
    
} else {
    echo "❌ Arquivo principal NÃO encontrado!<br>";
}

// 2. Verificar se o backup ainda existe
echo "<h2>2️⃣ Verificando arquivo de backup</h2>";

if (file_exists($arquivoBackup)) {
    echo "⚠️ Arquivo de backup ainda existe: $arquivoBackup<br>";
    echo "💡 Recomendo remover este arquivo para evitar confusão<br>";
    
    // Mostrar diferenças
    $conteudoBackup = file_get_contents($arquivoBackup);
    if (strpos($conteudoBackup, 'km_real') !== false) {
        echo "❌ Backup contém 'km_real' (versão antiga)<br>";
    }
} else {
    echo "✅ Arquivo de backup não existe<br>";
}

// 3. Testar conexão com banco
echo "<h2>3️⃣ Testando conexão com banco</h2>";

try {
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    $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,
    ]);
    
    echo "✅ Conexão com banco estabelecida!<br>";
    
    // Verificar estrutura da tabela solicitacoes_rotas
    $stmt = $pdo->query("DESCRIBE solicitacoes_rotas");
    $colunas = $stmt->fetchAll();
    
    $colunaDistanciaExiste = false;
    $colunaKmRealExiste = false;
    
    foreach ($colunas as $coluna) {
        if ($coluna['Field'] === 'distancia_odometro_rota') {
            $colunaDistanciaExiste = true;
        }
        if ($coluna['Field'] === 'km_real') {
            $colunaKmRealExiste = true;
        }
    }
    
    if ($colunaDistanciaExiste) {
        echo "✅ Coluna 'distancia_odometro_rota' existe no banco<br>";
    } else {
        echo "❌ Coluna 'distancia_odometro_rota' NÃO existe no banco<br>";
    }
    
    if ($colunaKmRealExiste) {
        echo "⚠️ Coluna 'km_real' ainda existe no banco<br>";
    } else {
        echo "✅ Coluna 'km_real' não existe mais no banco<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Erro de conexão: " . $e->getMessage() . "<br>";
}

// 4. Testar UPDATE na tabela solicitacoes_rotas
echo "<h2>4️⃣ Testando UPDATE na tabela solicitacoes_rotas</h2>";

try {
    $sqlTeste = "UPDATE solicitacoes_rotas SET 
                 distancia_odometro_rota = 999,
                 status = 'teste'
                 WHERE id = 999999"; // ID que não existe
    
    $stmt = $pdo->prepare($sqlTeste);
    $stmt->execute();
    
    echo "✅ UPDATE funcionou! (0 linhas afetadas - esperado)<br>";
    
} catch (Exception $e) {
    echo "❌ Erro no UPDATE: " . $e->getMessage() . "<br>";
}

// 5. Testar UPDATE na tabela viagens
echo "<h2>5️⃣ Testando UPDATE na tabela viagens</h2>";

try {
    $sqlTeste = "UPDATE viagens SET 
                 odometro_final = 999,
                 distancia_gps = 999
                 WHERE id = 999999"; // ID que não existe
    
    $stmt = $pdo->prepare($sqlTeste);
    $stmt->execute();
    
    echo "✅ UPDATE funcionou! (0 linhas afetadas - esperado)<br>";
    
} catch (Exception $e) {
    echo "❌ Erro no UPDATE: " . $e->getMessage() . "<br>";
}

// 6. Recomendações
echo "<h2>6️⃣ Recomendações</h2>";

echo "<ul>";
echo "<li>✅ Se todos os testes passaram, a API deve estar funcionando</li>";
echo "<li>🔄 Reinicie o servidor web (Apache/Nginx) se necessário</li>";
echo "<li>🗑️ Remova o arquivo de backup para evitar confusão</li>";
echo "<li>🧪 Teste novamente a funcionalidade 'Finalizar Rota' no app</li>";
echo "</ul>";

echo "<h2>🎯 Status Final</h2>";
echo "<p>Se todos os testes passaram, a API está funcionando corretamente!</p>";
echo "<p>Teste novamente a funcionalidade 'Finalizar Rota' no aplicativo Android.</p>";
?>
