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

echo "<h2>🔄 Atualizando Dashboard com Novos Nomes de Colunas</h2>";

try {
    $arquivoDashboard = 'admin/dashboard.html';
    
    if (!file_exists($arquivoDashboard)) {
        throw new Exception("Arquivo $arquivoDashboard não encontrado!");
    }
    
    echo "<p>✅ Arquivo $arquivoDashboard encontrado!</p>";
    
    // Ler o conteúdo atual
    $conteudo = file_get_contents($arquivoDashboard);
    $conteudoOriginal = $conteudo;
    
    echo "<h3>🔍 Substituindo nomes das colunas no dashboard:</h3>";
    
    // 1. Substituir km_inicial por odometro_inicial
    $conteudo = str_replace('viagem.km_inicial', 'viagem.odometro_inicial', $conteudo);
    $conteudo = str_replace('km_inicial', 'odometro_inicial', $conteudo);
    echo "<p>✅ 'km_inicial' → 'odometro_inicial'</p>";
    
    // 2. Substituir km_final por odometro_final
    $conteudo = str_replace('viagem.km_final', 'viagem.odometro_final', $conteudo);
    $conteudo = str_replace('km_final', 'odometro_final', $conteudo);
    echo "<p>✅ 'km_final' → 'odometro_final'</p>";
    
    // 3. Substituir km_gps_final por distancia_gps
    $conteudo = str_replace('viagem.km_gps_final', 'viagem.distancia_gps', $conteudo);
    $conteudo = str_replace('km_gps_final', 'distancia_gps', $conteudo);
    echo "<p>✅ 'km_gps_final' → 'distancia_gps'</p>";
    
    // 4. Substituir km_real por distancia_odometro_rota (para rotas)
    $conteudo = str_replace('viagem.km_real', 'viagem.distancia_odometro_rota', $conteudo);
    echo "<p>✅ 'viagem.km_real' → 'viagem.distancia_odometro_rota'</p>";
    
    // 5. Atualizar comentários e logs
    $conteudo = str_replace('// 🔧 CORREÇÃO: Para ROTAS, usar km_real da API', '// 🔧 CORREÇÃO: Para ROTAS, usar distancia_odometro_rota da API', $conteudo);
    $conteudo = str_replace('// 🔧 CORREÇÃO: km_gps_final agora está em QUILÔMETROS', '// 🔧 CORREÇÃO: distancia_gps agora está em QUILÔMETROS', $conteudo);
    echo "<p>✅ Comentários e logs atualizados</p>";
    
    // 6. Atualizar mensagens de console.log
    $conteudo = str_replace('console.log(\'✅ [calcularKmManual] ROTA: usando km_real da API:\'', 'console.log(\'✅ [calcularKmManual] ROTA: usando distancia_odometro_rota da API:\'', $conteudo);
    $conteudo = str_replace('console.log(\'✅ [calcularDiferencaInfo] ROTA: usando km_real da API:\'', 'console.log(\'✅ [calcularDiferencaInfo] ROTA: usando distancia_odometro_rota da API:\'', $conteudo);
    $conteudo = str_replace('console.log(\'✅ [calcularDiferenca] ROTA: usando km_real da API:\'', 'console.log(\'✅ [calcularDiferenca] ROTA: usando distancia_odometro_rota da API:\'', $conteudo);
    echo "<p>✅ Mensagens de console atualizadas</p>";
    
    // Verificar se houve mudanças
    if ($conteudo === $conteudoOriginal) {
        echo "<p>⚠️ Nenhuma mudança foi feita. Verifique se os nomes já estão corretos.</p>";
    } else {
        // Fazer backup do arquivo original
        $backupFile = $arquivoDashboard . '.backup.' . date('Y-m-d-H-i-s');
        if (copy($arquivoDashboard, $backupFile)) {
            echo "<p>✅ Backup criado: $backupFile</p>";
        }
        
        // Salvar o arquivo atualizado
        if (file_put_contents($arquivoDashboard, $conteudo)) {
            echo "<p>✅ Arquivo $arquivoDashboard atualizado com sucesso!</p>";
        } else {
            throw new Exception("Erro ao salvar o arquivo!");
        }
    }
    
    // Verificar se ainda há referências às colunas antigas
    echo "<h3>🔍 Verificando se ainda há referências às colunas antigas:</h3>";
    
    $referenciasAntigas = [
        'km_inicial' => substr_count($conteudo, 'km_inicial'),
        'km_final' => substr_count($conteudo, 'km_final'),
        'km_gps_final' => substr_count($conteudo, 'km_gps_final'),
        'km_real' => substr_count($conteudo, 'km_real')
    ];
    
    foreach ($referenciasAntigas as $coluna => $quantidade) {
        if ($quantidade > 0) {
            echo "<p>⚠️ Ainda há <strong>$quantidade</strong> referências a '$coluna'</p>";
        } else {
            echo "<p>✅ Nenhuma referência a '$coluna' encontrada</p>";
        }
    }
    
    // Mostrar exemplos das mudanças feitas
    echo "<h3>📋 Exemplos das mudanças realizadas:</h3>";
    echo "<ul>";
    echo "<li><strong>viagem.km_inicial</strong> → <strong>viagem.odometro_inicial</strong></li>";
    echo "<li><strong>viagem.km_final</strong> → <strong>viagem.odometro_final</strong></li>";
    echo "<li><strong>viagem.km_gps_final</strong> → <strong>viagem.distancia_gps</strong></li>";
    echo "<li><strong>viagem.km_real</strong> → <strong>viagem.distancia_odometro_rota</strong></li>";
    echo "<li><strong>Comentários e logs</strong> atualizados</li>";
    echo "<li><strong>Mensagens de console</strong> atualizadas</li>";
    echo "</ul>";
    
    // Verificar se as funções JavaScript foram atualizadas corretamente
    echo "<h3>🔍 Verificando funções JavaScript atualizadas:</h3>";
    
    $funcoesAtualizadas = [
        'calcularKmManual' => substr_count($conteudo, 'odometro_final - odometro_inicial'),
        'calcularKmGps' => substr_count($conteudo, 'distancia_gps'),
        'calcularDiferencaInfo' => substr_count($conteudo, 'distancia_odometro_rota'),
        'calcularDiferenca' => substr_count($conteudo, 'distancia_odometro_rota')
    ];
    
    foreach ($funcoesAtualizadas as $funcao => $quantidade) {
        if ($quantidade > 0) {
            echo "<p>✅ Função <strong>$funcao</strong> atualizada ($quantidade referências)</p>";
        } else {
            echo "<p>⚠️ Função <strong>$funcao</strong> não foi atualizada</p>";
        }
    }
    
    echo "<h3>🎯 Próximos Passos:</h3>";
    echo "<ol>";
    echo "<li>✅ Dashboard atualizado com novos nomes de colunas</li>";
    echo "<li>🔧 Atualizar aplicativo Android para usar os novos nomes</li>";
    echo "<li>🧪 Testar dashboard para verificar se está funcionando</li>";
    echo "<li>🧪 Testar API para verificar se está retornando dados corretos</li>";
    echo "</ol>";
    
    echo "<h3>⚠️ IMPORTANTE:</h3>";
    echo "<p>Teste o dashboard para garantir que todas as funcionalidades estão funcionando:</p>";
    echo "<ul>";
    echo "<li><strong>Carregamento de viagens</strong> - deve mostrar dados corretos</li>";
    echo "<li><strong>Carregamento de rotas</strong> - deve mostrar dados corretos</li>";
    echo "<li><strong>Cálculos de distância</strong> - devem usar os novos nomes de colunas</li>";
    echo "<li><strong>Exibição de odômetros</strong> - devem mostrar valores corretos</li>";
    echo "</ul>";
    
    echo "<h3>🧪 Para testar:</h3>";
    echo "<p>Acesse o dashboard e verifique se:</p>";
    echo "<ul>";
    echo "<li>As viagens carregam corretamente</li>";
    echo "<li>Os odômetros são exibidos corretamente</li>";
    echo "<li>As distâncias GPS são calculadas corretamente</li>";
    echo "<li>As diferenças entre odômetro e GPS são exibidas</li>";
    echo "</ul>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}
?>
