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

echo "<h2>🔧 CORRIGIR TODOS OS TIPOS DE VEÍCULOS</h2>";

try {
    require_once 'config/database.php';
    $pdo = new PDO($dsn, $username, $password, $options);
    
    echo "<h3>1. 📊 Análise Atual dos Veículos:</h3>";
    
    // Buscar todos os veículos
    $stmt = $pdo->query("SELECT id, modelo, placa, tipo FROM veiculos ORDER BY id");
    $veiculos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr style='background: #f8f9fa;'>";
    echo "<th>ID</th><th>Modelo</th><th>Placa</th><th>Tipo Atual</th><th>Tipo Sugerido</th><th>Status</th>";
    echo "</tr>";
    
    $problemas = [];
    $sugestoes = [];
    
    foreach ($veiculos as $veiculo) {
        $modelo = strtolower($veiculo['modelo']);
        $tipoAtual = strtolower($veiculo['tipo']);
        $tipoSugerido = null;
        $status = "✅ CORRETO";
        
        // Lógica de detecção de tipo baseada no modelo
        if (preg_match('/\b(cerato|uno|civic|march|onix|corolla|fusion|focus|gol|fiesta|ka|palio|strada|\bcarro\b)\b/i', $modelo)) {
            $tipoSugerido = 'carro';
        } elseif (preg_match('/\b(cg|fan|pop|honda|yamaha|moto|motocicleta|cb|ninja|fazer|titan|twister|bros|xre|xt)\b/i', $modelo)) {
            $tipoSugerido = 'moto';
        } elseif (preg_match('/\b(caminhao|truck|iveco|volvo|scania|mercedes|ford cargo|vw|volkswagen.*[0-9]{3,})\b/i', $modelo)) {
            $tipoSugerido = 'caminhao';
        } elseif (preg_match('/\b(van|sprinter|ducato|master|transit|boxer|fiorino|kangoo)\b/i', $modelo)) {
            $tipoSugerido = 'van';
        } else {
            // Heurística adicional baseada no nome
            if (preg_match('/^[A-Z]{3}[0-9]{4}$/', $veiculo['placa'])) {
                // Placa de formato antigo (mais provável ser carro)
                $tipoSugerido = 'carro';
            } else {
                $tipoSugerido = $tipoAtual; // Manter atual se não conseguir detectar
            }
        }
        
        // Verificar se precisa correção
        if ($tipoAtual !== $tipoSugerido) {
            $status = "❌ INCORRETO";
            $problemas[] = [
                'id' => $veiculo['id'],
                'modelo' => $veiculo['modelo'],
                'tipo_atual' => $tipoAtual,
                'tipo_correto' => $tipoSugerido
            ];
        }
        
        $sugestoes[$veiculo['id']] = $tipoSugerido;
        
        echo "<tr>";
        echo "<td>{$veiculo['id']}</td>";
        echo "<td>{$veiculo['modelo']}</td>";
        echo "<td>{$veiculo['placa']}</td>";
        echo "<td style='background: " . ($tipoAtual !== $tipoSugerido ? '#ffe0e0' : '#e0ffe0') . ";'>{$veiculo['tipo']}</td>";
        echo "<td style='background: " . ($tipoAtual !== $tipoSugerido ? '#e0ffe0' : '#f8f9fa') . ";'>{$tipoSugerido}</td>";
        echo "<td>{$status}</td>";
        echo "</tr>";
    }
    
    echo "</table>";
    
    echo "<h3>2. 📋 Resumo da Análise:</h3>";
    echo "<p><strong>Total de veículos:</strong> " . count($veiculos) . "</p>";
    echo "<p><strong>Veículos com problema:</strong> " . count($problemas) . "</p>";
    echo "<p><strong>Veículos corretos:</strong> " . (count($veiculos) - count($problemas)) . "</p>";
    
    if (count($problemas) > 0) {
        echo "<h3>3. ⚠️ Problemas Encontrados:</h3>";
        echo "<ul>";
        foreach ($problemas as $problema) {
            echo "<li><strong>ID {$problema['id']} ({$problema['modelo']}):</strong> ";
            echo "'{$problema['tipo_atual']}' → deveria ser '{$problema['tipo_correto']}'</li>";
        }
        echo "</ul>";
        
        // Formulário para aplicar correções
        echo "<h3>4. 🔧 Aplicar Correções:</h3>";
        echo "<form method='post' style='background: #f8f9fa; padding: 20px; border: 1px solid #ddd; border-radius: 5px;'>";
        echo "<p><strong>⚠️ ATENÇÃO:</strong> Isso irá alterar os tipos dos veículos no banco de dados.</p>";
        echo "<p>As seguintes correções serão aplicadas:</p>";
        echo "<ul>";
        foreach ($problemas as $problema) {
            echo "<li>Veículo {$problema['id']} ({$problema['modelo']}): '{$problema['tipo_atual']}' → '{$problema['tipo_correto']}'</li>";
            echo "<input type='hidden' name='correcoes[{$problema['id']}]' value='{$problema['tipo_correto']}'>";
        }
        echo "</ul>";
        echo "<button type='submit' name='aplicar_correcoes' style='background: #28a745; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🔧 Aplicar Todas as Correções</button>";
        echo " <button type='button' onclick='window.location.reload()' style='background: #6c757d; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🔄 Cancelar</button>";
        echo "</form>";
    } else {
        echo "<div style='background: #e0ffe0; padding: 15px; border-left: 5px solid #28a745; margin: 20px 0;'>";
        echo "<h3>✅ Todos os Veículos Estão Corretos!</h3>";
        echo "<p>Nenhuma correção necessária.</p>";
        echo "</div>";
    }
    
    // Processar correções se enviadas
    if (isset($_POST['aplicar_correcoes']) && isset($_POST['correcoes'])) {
        echo "<h3>5. ⚡ Aplicando Correções:</h3>";
        
        $correcoes = $_POST['correcoes'];
        $sucessos = 0;
        $erros = 0;
        
        foreach ($correcoes as $veiculoId => $tipoCorreto) {
            try {
                $stmt = $pdo->prepare("UPDATE veiculos SET tipo = ? WHERE id = ?");
                $sucesso = $stmt->execute([$tipoCorreto, $veiculoId]);
                
                if ($sucesso) {
                    echo "<p style='color: green;'>✅ Veículo ID $veiculoId: tipo atualizado para '$tipoCorreto'</p>";
                    $sucessos++;
                } else {
                    echo "<p style='color: red;'>❌ Falha ao atualizar veículo ID $veiculoId</p>";
                    $erros++;
                }
            } catch (Exception $e) {
                echo "<p style='color: red;'>❌ Erro no veículo ID $veiculoId: " . $e->getMessage() . "</p>";
                $erros++;
            }
        }
        
        echo "<div style='background: #e0ffe0; padding: 15px; border-left: 5px solid #28a745; margin: 20px 0;'>";
        echo "<h4>🎯 Resultado Final:</h4>";
        echo "<p><strong>Correções aplicadas:</strong> $sucessos</p>";
        echo "<p><strong>Erros:</strong> $erros</p>";
        echo "<p><strong>Total processado:</strong> " . count($correcoes) . "</p>";
        echo "</div>";
        
        if ($sucessos > 0) {
            echo "<div style='background: #fff3cd; padding: 15px; border-left: 5px solid #ffc107; margin: 20px 0;'>";
            echo "<h4>📋 Próximos Passos:</h4>";
            echo "<ul>";
            echo "<li>✅ Tipos de veículos corrigidos</li>";
            echo "<li>✅ Próximos checklists usarão os tipos corretos</li>";
            echo "<li>⚠️ Checklists antigos mantêm tipos históricos (como ID 123)</li>";
            echo "<li>🔄 <a href='?' style='color: #007bff;'>Recarregar página</a> para ver resultado</li>";
            echo "</ul>";
            echo "</div>";
        }
    }
    
    echo "<h3>6. 🎯 Detecção Automática de Tipos:</h3>";
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
    echo "<h4>Regras utilizadas:</h4>";
    echo "<ul>";
    echo "<li><strong>CARRO:</strong> Cerato, Uno, Civic, March, Onix, Corolla, Fusion, Focus, Gol, Fiesta, KA, Palio</li>";
    echo "<li><strong>MOTO:</strong> CG, Fan, Pop, Honda, Yamaha, CB, Ninja, Fazer, Titan, Twister, Bros, XRE, XT</li>";
    echo "<li><strong>CAMINHÃO:</strong> Iveco, Volvo, Scania, Mercedes, Ford Cargo, VW (com números)</li>";
    echo "<li><strong>VAN:</strong> Sprinter, Ducato, Master, Transit, Boxer, Fiorino, Kangoo</li>";
    echo "</ul>";
    echo "<p><strong>Observação:</strong> A detecção é baseada no modelo do veículo usando expressões regulares.</p>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'><strong>ERRO:</strong> " . $e->getMessage() . "</p>";
}
?> 
