<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h2>📏 Modificar Precisão da Coluna km_gps_final</h2>";

try {
    require_once 'config/database.php';
    $pdo = Database::getConnection();
    
    // 1. Verificar estrutura atual da coluna
    echo "<h3>1. Estrutura Atual da Coluna km_gps_final</h3>";
    
    $stmt = $pdo->query("DESCRIBE viagens");
    $colunas = $stmt->fetchAll();
    
    $colunaAtual = null;
    foreach ($colunas as $coluna) {
        if ($coluna['Field'] === 'km_gps_final') {
            $colunaAtual = $coluna;
            break;
        }
    }
    
    if ($colunaAtual) {
        echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
        echo "<h4>📋 Coluna km_gps_final atual:</h4>";
        echo "<p><strong>Tipo:</strong> {$colunaAtual['Type']}</p>";
        echo "<p><strong>Null:</strong> {$colunaAtual['Null']}</p>";
        echo "<p><strong>Default:</strong> " . ($colunaAtual['Default'] ?: 'NULL') . "</p>";
        echo "</div>";
        
        // Verificar se precisa modificar
        $precisaModificar = !strpos($colunaAtual['Type'], 'DECIMAL(10,6)');
        
        if ($precisaModificar) {
            echo "<h3>2. Modificar Precisão da Coluna</h3>";
            
            if (isset($_POST['modificar_precisao'])) {
                try {
                    // Modificar a coluna para DECIMAL(10,6) para suportar metros com precisão
                    $sql = "ALTER TABLE viagens MODIFY COLUMN km_gps_final DECIMAL(10,6) NULL";
                    $stmt = $pdo->prepare($sql);
                    $resultado = $stmt->execute();
                    
                    if ($resultado) {
                        echo "<div style='background: #e8f5e8; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
                        echo "<h4>✅ Coluna km_gps_final modificada com sucesso!</h4>";
                        echo "<p>A coluna agora suporta 6 casas decimais para mostrar metros com precisão.</p>";
                        echo "<p><strong>Exemplo:</strong> 0.013000 km = 13 metros</p>";
                        echo "</div>";
                        
                        $precisaModificar = false;
                    } else {
                        echo "<div style='background: #ffebee; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
                        echo "<h4>❌ Erro ao modificar coluna</h4>";
                        echo "</div>";
                    }
                } catch (Exception $e) {
                    echo "<div style='background: #ffebee; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
                    echo "<h4>❌ Erro ao modificar coluna:</h4>";
                    echo "<p>" . $e->getMessage() . "</p>";
                    echo "</div>";
                }
            } else {
                echo "<div style='background: #fff3e0; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
                echo "<h4>🔧 Ação Necessária:</h4>";
                echo "<p>A coluna <strong>km_gps_final</strong> precisa ser modificada para suportar mais precisão decimal.</p>";
                echo "<p><strong>Mudança:</strong> {$colunaAtual['Type']} → DECIMAL(10,6)</p>";
                echo "<p><strong>Benefício:</strong> Poderá mostrar distâncias pequenas como 13 metros (0.013000 km)</p>";
                echo "<form method='post'>";
                echo "<button type='submit' name='modificar_precisao' style='background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🔧 Modificar Precisão</button>";
                echo "</form>";
                echo "</div>";
            }
        } else {
            echo "<div style='background: #e8f5e8; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
            echo "<h4>✅ Coluna já tem precisão adequada!</h4>";
            echo "<p>A coluna km_gps_final já suporta 6 casas decimais.</p>";
            echo "</div>";
        }
    }
    
    // 3. Mostrar exemplo de viagem atual
    echo "<h3>3. Exemplo de Viagem Atual</h3>";
    
    $stmt = $pdo->prepare("SELECT id, cliente, km_gps_final FROM viagens WHERE id = 1");
    $stmt->execute();
    $viagem = $stmt->fetch();
    
    if ($viagem) {
        echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
        echo "<h4>📊 Viagem #{$viagem['id']} - {$viagem['cliente']}</h4>";
        echo "<p><strong>km_gps_final:</strong> " . ($viagem['km_gps_final'] ?: 'NULL') . " km</p>";
        
        if ($viagem['km_gps_final']) {
            $metros = $viagem['km_gps_final'] * 1000;
            echo "<p><strong>Em metros:</strong> " . number_format($metros, 2) . " metros</p>";
            
            if ($metros < 1000) {
                echo "<p style='color: orange;'><strong>⚠️ Nota:</strong> Esta distância é menor que 1 km. Com a nova precisão, será mostrada como " . number_format($viagem['km_gps_final'], 6) . " km</p>";
            }
        }
        echo "</div>";
    }
    
    // 4. Explicação da solução
    echo "<h3>4. Como Funciona a Nova Solução</h3>";
    echo "<div style='background: #e3f2fd; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h4>📏 Sistema de Precisão:</h4>";
    echo "<ul>";
    echo "<li><strong>13 metros</strong> = 0.013000 km (6 casas decimais)</li>";
    echo "<li><strong>390 metros</strong> = 0.390000 km (6 casas decimais)</li>";
    echo "<li><strong>1.5 km</strong> = 1.500000 km (6 casas decimais)</li>";
    echo "<li><strong>18.3 km</strong> = 18.300000 km (6 casas decimais)</li>";
    echo "</ul>";
    echo "<p><strong>Vantagem:</strong> Uma única coluna mostra tanto distâncias grandes quanto pequenas com precisão!</p>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "<br>";
}

echo "<h3>✅ Processo Concluído!</h3>";
echo "<p><strong>Resumo:</strong> Este script modifica a precisão da coluna km_gps_final para mostrar metros com precisão.</p>";
?>
