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

echo "<h1>🔄 Atualizar APIs para Tabela Unificada</h1>";
echo "<p>Este script atualiza as APIs para usar apenas a tabela 'usuarios' unificada.</p>";

// Lista de arquivos que precisam ser atualizados
$arquivosParaAtualizar = [
    '../api-simples-v2.php' => [
        'descricao' => 'API principal do sistema',
        'modificacoes' => [
            'Login de motoristas' => 'Atualizar para usar tabela usuarios',
            'JOINs com motoristas' => 'Remover referências à tabela motoristas',
            'Campos específicos' => 'Usar campos unificados da tabela usuarios'
        ]
    ]
];

echo "<h2>📋 Arquivos que Precisam ser Atualizados</h2>";

foreach ($arquivosParaAtualizar as $arquivo => $info) {
    echo "<div style='border: 1px solid #ddd; padding: 15px; margin: 10px 0; border-radius: 5px;'>";
    echo "<h3>📄 " . basename($arquivo) . "</h3>";
    echo "<p><strong>Descrição:</strong> {$info['descricao']}</p>";
    echo "<p><strong>Caminho:</strong> <code>$arquivo</code></p>";
    echo "<p><strong>Modificações necessárias:</strong></p>";
    echo "<ul>";
    foreach ($info['modificacoes'] as $area => $descricao) {
        echo "<li><strong>$area:</strong> $descricao</li>";
    }
    echo "</ul>";
    echo "</div>";
}

echo "<h2>🔧 Atualizações Automáticas</h2>";

try {
    // 1. Atualizar api-simples-v2.php
    echo "<h3>1. Atualizando api-simples-v2.php</h3>";
    
    $arquivoApi = '../api-simples-v2.php';
    if (!file_exists($arquivoApi)) {
        echo "<p>❌ Arquivo não encontrado: $arquivoApi</p>";
    } else {
        $conteudo = file_get_contents($arquivoApi);
        $conteudoOriginal = $conteudo;
        $modificacoes = 0;
        
        // Atualização 1: Remover verificação dupla de login
        $padraoAntigo = '/\$stmtCheck = \$pdo->query\("SELECT id, nome, usuario, senha, status FROM motoristas"\);.*?foreach \(\$correcoes as \$motoristaId => \$dados\) \{.*?\}/s';
        if (preg_match($padraoAntigo, $conteudo)) {
            $conteudo = preg_replace($padraoAntigo, '// Verificação de motoristas removida - usando tabela usuarios unificada', $conteudo);
            $modificacoes++;
            echo "<p>✅ Removida verificação dupla de motoristas</p>";
        }
        
        // Atualização 2: Simplificar login para usar apenas usuarios
        $loginAntigo = '/\/\/ Buscar na tabela motoristas.*?if \(\$motorista\) \{.*?\} else \{.*?\}/s';
        $loginNovo = '
                // Buscar na tabela usuarios unificada
                $stmt = $pdo->prepare("
                    SELECT id, nome, email, matricula, cpf, telefone, senha, ativo as status 
                    FROM usuarios 
                    WHERE (email = ? OR matricula = ? OR cpf = ?) AND ativo = 1
                ");
                $stmt->execute([$email, $email, $email]);
                $usuario = $stmt->fetch();
                
                if ($usuario && ($usuario["senha"] === $senha || password_verify($senha, $usuario["senha"]))) {
                    // Login bem-sucedido
                    $response = [
                        "sucesso" => true,
                        "mensagem" => "Login realizado com sucesso",
                        "dados" => [
                            "usuario" => [
                                "id" => $usuario["id"],
                                "nome" => $usuario["nome"],
                                "email" => $usuario["email"],
                                "matricula" => $usuario["matricula"],
                                "telefone" => $usuario["telefone"]
                            ],
                            "token" => "auth_token_" . time()
                        ]
                    ];
                } else {
                    $response = [
                        "sucesso" => false,
                        "mensagem" => "Credenciais inválidas"
                    ];
                }';
        
        if (preg_match($loginAntigo, $conteudo)) {
            $conteudo = preg_replace($loginAntigo, $loginNovo, $conteudo);
            $modificacoes++;
            echo "<p>✅ Login simplificado para usar tabela usuarios</p>";
        }
        
        // Atualização 3: Corrigir JOINs nas consultas de viagens
        $joinAntigo = 'LEFT JOIN motoristas m ON v.tecnico_id = m.nome';
        $joinNovo = 'LEFT JOIN usuarios u ON v.tecnico_id = u.id';
        
        if (strpos($conteudo, $joinAntigo) !== false) {
            $conteudo = str_replace($joinAntigo, $joinNovo, $conteudo);
            $modificacoes++;
            echo "<p>✅ JOINs atualizados para usar tabela usuarios</p>";
        }
        
        // Atualização 4: Corrigir campos nos SELECTs
        $campoAntigo = 'm.nome as tecnico_nome';
        $campoNovo = 'u.nome as tecnico_nome';
        
        if (strpos($conteudo, $campoAntigo) !== false) {
            $conteudo = str_replace($campoAntigo, $campoNovo, $conteudo);
            $modificacoes++;
            echo "<p>✅ Campos de SELECT atualizados</p>";
        }
        
        // Salvar arquivo se houve modificações
        if ($modificacoes > 0) {
            // Fazer backup
            $backupFile = $arquivoApi . '.backup_' . date('Y-m-d_H-i-s');
            file_put_contents($backupFile, $conteudoOriginal);
            echo "<p>💾 Backup criado: " . basename($backupFile) . "</p>";
            
            // Salvar arquivo atualizado
            file_put_contents($arquivoApi, $conteudo);
            echo "<p>✅ Arquivo atualizado com $modificacoes modificações</p>";
        } else {
            echo "<p>ℹ️ Nenhuma modificação necessária encontrada</p>";
        }
    }
    
    echo "<h2>✅ Verificação das Atualizações</h2>";
    
    // Verificar se as atualizações foram aplicadas corretamente
    $conteudoFinal = file_get_contents($arquivoApi);
    
    $verificacoes = [
        'JOIN usuarios' => strpos($conteudoFinal, 'LEFT JOIN usuarios u ON v.tecnico_id = u.id') !== false,
        'SELECT usuarios' => strpos($conteudoFinal, 'u.nome as tecnico_nome') !== false,
        'Login simplificado' => strpos($conteudoFinal, 'FROM usuarios') !== false && strpos($conteudoFinal, 'WHERE (email = ? OR matricula = ? OR cpf = ?)') !== false
    ];
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%; margin: 10px 0;'>";
    echo "<tr style='background: #f0f0f0;'><th>Verificação</th><th>Status</th></tr>";
    
    foreach ($verificacoes as $item => $status) {
        $statusText = $status ? '✅ OK' : '❌ Pendente';
        $cor = $status ? 'green' : 'red';
        echo "<tr>";
        echo "<td>$item</td>";
        echo "<td style='color: $cor;'>$statusText</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    $todasOk = array_reduce($verificacoes, function($carry, $item) {
        return $carry && $item;
    }, true);
    
    if ($todasOk) {
        echo "<div style='background: #d4edda; padding: 15px; border-radius: 5px; margin: 20px 0;'>";
        echo "<h3>🎉 Atualizações Concluídas!</h3>";
        echo "<p>✅ Todas as verificações passaram</p>";
        echo "<p>✅ APIs atualizadas para usar tabela unificada</p>";
        echo "<p>✅ Sistema pronto para usar apenas tabela 'usuarios'</p>";
        echo "</div>";
        
        echo "<h3>🧪 Próximos Passos</h3>";
        echo "<ol>";
        echo "<li>Testar login no aplicativo Android</li>";
        echo "<li>Verificar se o dashboard mostra técnicos corretamente</li>";
        echo "<li>Testar criação e sincronização de viagens</li>";
        echo "<li>Se tudo funcionar, fazer backup da tabela 'motoristas' e removê-la</li>";
        echo "</ol>";
    } else {
        echo "<div style='background: #f8d7da; padding: 15px; border-radius: 5px; margin: 20px 0;'>";
        echo "<h3>⚠️ Algumas Atualizações Pendentes</h3>";
        echo "<p>Algumas verificações falharam. Revise manualmente o código.</p>";
        echo "</div>";
    }
    
} catch (Exception $e) {
    echo "<div style='color: red; background: #f8d7da; padding: 15px; border-radius: 5px;'>";
    echo "<h3>❌ Erro durante as atualizações:</h3>";
    echo "<p><strong>Erro:</strong> " . $e->getMessage() . "</p>";
    echo "<p><strong>Linha:</strong> " . $e->getLine() . "</p>";
    echo "<p><strong>Arquivo:</strong> " . $e->getFile() . "</p>";
    echo "</div>";
}

echo "<hr>";
echo "<p><a href='unificar-usuarios.html'>🔗 Voltar para Unificação</a> | ";
echo "<a href='verificar-tecnicos.html'>🔗 Verificar Técnicos</a> | ";
echo "<a href='dashboard.html'>🔗 Dashboard</a></p>";
?> 
