<?php
include 'includes/header.php';

$mensagem = '';
$tipo_mensagem = '';
$detalhes = '';

// Processar a migração DNS
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['acao']) && $_POST['acao'] == 'migrar') {
    $texto_antigo = isset($_POST['texto_antigo']) ? trim($_POST['texto_antigo']) : '';
    $texto_novo = isset($_POST['texto_novo']) ? trim($_POST['texto_novo']) : '';
    
    if (!empty($texto_antigo) && !empty($texto_novo)) {
        try {
            $db1 = new SQLite3('a/.eggziedb.db');
            
            // Escapar o texto para evitar SQL Injection manual (compatível com PHP antigo)
            $texto_antigo_escapado = SQLite3::escapeString($texto_antigo);
            
            // Contar quantos registros têm o texto antigo
            $sql_count = "SELECT COUNT(*) as total FROM ibo WHERE url LIKE '%$texto_antigo_escapado%'";
            $count_result = $db1->query($sql_count);
            $count_row = $count_result->fetchArray(SQLITE3_ASSOC);
            $total_encontrados = $count_row['total'];
            
            if ($total_encontrados > 0) {
                // Buscar todos os registros que contêm o texto antigo
                $sql_select = "SELECT id, url, username, title FROM ibo WHERE url LIKE '%$texto_antigo_escapado%'";
                $result = $db1->query($sql_select);
                
                $count = 0;
                $urls_atualizadas = [];
                
                // Atualizar cada registro
                while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
                    $url_atual = $row['url'];
                    // Substituir o texto antigo pelo novo
                    $url_nova = str_replace($texto_antigo, $texto_novo, $url_atual);
                    
                    // Escapar a nova URL para o UPDATE
                    $url_nova_escapada = SQLite3::escapeString($url_nova);
                    $id_registro = intval($row['id']);
                    
                    // Executar a atualização
                    $sql_update = "UPDATE ibo SET url = '$url_nova_escapada' WHERE id = $id_registro";
                    if ($db1->exec($sql_update)) {
                        $count++;
                        if (count($urls_atualizadas) < 5) {
                            $urls_atualizadas[] = [
                                'usuario' => htmlspecialchars($row['username']),
                                'titulo' => htmlspecialchars($row['title']),
                                'url_antiga' => htmlspecialchars($url_atual),
                                'url_nova' => htmlspecialchars($url_nova)
                            ];
                        }
                    }
                }
                
                $db1->close();
                
                if ($count > 0) {
                    $mensagem = "✓ <strong>Sucesso!</strong> Substituição realizada em <strong>$count registro(s)</strong>.";
                    $tipo_mensagem = 'success';
                    
                    // Mostrar detalhes das primeiras 5 atualizações
                    if (count($urls_atualizadas) > 0) {
                        $detalhes = "<div style='margin-top: 15px; padding: 15px; background-color: #f0f0f0; border-radius: 4px;'>";
                        $detalhes .= "<h5>Exemplo de registros atualizados:</h5>";
                        $detalhes .= "<table style='width: 100%; font-size: 12px; border-collapse: collapse;'>";
                        $detalhes .= "<tr style='border-bottom: 1px solid #ccc;'><th style='text-align: left; padding: 5px;'>Usuário</th><th style='text-align: left; padding: 5px;'>URL Antiga</th><th style='text-align: left; padding: 5px;'>URL Nova</th></tr>";
                        
                        foreach ($urls_atualizadas as $u) {
                            $detalhes .= "<tr style='border-bottom: 1px solid #eee;'>";
                            $detalhes .= "<td style='padding: 5px;'>" . $u['usuario'] . "</td>";
                            $detalhes .= "<td style='padding: 5px; font-family: monospace; font-size: 11px;'>" . substr($u['url_antiga'], 0, 30) . "...</td>";
                            $detalhes .= "<td style='padding: 5px; font-family: monospace; font-size: 11px;'>" . substr($u['url_nova'], 0, 30) . "...</td>";
                            $detalhes .= "</tr>";
                        }
                        
                        $detalhes .= "</table>";
                        $detalhes .= "</div>";
                    }
                } else {
                    $mensagem = "✗ Erro ao atualizar os registros.";
                    $tipo_mensagem = 'danger';
                }
            } else {
                $mensagem = "⚠ Nenhum registro encontrado com: <strong>" . htmlspecialchars($texto_antigo) . "</strong>";
                $tipo_mensagem = 'warning';
            }
        } catch (Exception $e) {
            $mensagem = "✗ Erro ao processar: " . htmlspecialchars($e->getMessage());
            $tipo_mensagem = 'danger';
        }
    } else {
        $mensagem = "✗ Por favor, preencha ambos os campos.";
        $tipo_mensagem = 'danger';
    }
}
?>

<style>
body { background-color: #f8f9fa; }
.container-dns { max-width: 800px; margin: 30px auto; padding: 20px; }
.card-dns { border: none; border-radius: 8px; box-shadow: 0 0.15rem 1.75rem 0 rgba(58, 59, 69, 0.15); margin-bottom: 20px; }
.card-header-dns { background: linear-gradient(135deg, #4e73df 0%, #224abe 100%); color: white; padding: 20px; border-radius: 8px 8px 0 0; font-size: 18px; font-weight: bold; }
.card-body-dns { padding: 30px; }
.form-group-dns { margin-bottom: 20px; }
.form-group-dns label { display: block; margin-bottom: 8px; font-weight: 600; color: #333; }
.form-control-dns { width: 100%; padding: 12px; border: 2px solid #e3e6f0; border-radius: 4px; font-size: 14px; font-family: 'Courier New', monospace; }
.btn-dns { width: 100%; padding: 12px; border: none; border-radius: 4px; font-size: 16px; font-weight: bold; cursor: pointer; transition: all 0.3s; margin-top: 10px; }
.btn-migrar { background-color: #1cc88a; color: white; }
.btn-migrar:hover { background-color: #17a673; }
.btn-voltar { background-color: #6c757d; color: white; }
.alert-dns { padding: 15px; border-radius: 4px; margin-bottom: 20px; border-left: 4px solid; }
.alert-success { background-color: #d4edda; border-color: #28a745; color: #155724; }
.alert-danger { background-color: #f8d7da; border-color: #dc3545; color: #721c24; }
.alert-warning { background-color: #fff3cd; border-color: #ffc107; color: #856404; }
.info-box { background-color: #e7f3ff; border-left: 4px solid #2196F3; padding: 15px; margin-bottom: 20px; border-radius: 4px; }
.warning-box { background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 15px; margin-bottom: 20px; border-radius: 4px; color: #856404; }
</style>

<div class="container-dns">
    <div class="card-dns">
        <div class="card-header-dns">
            <i class="fas fa-exchange-alt"></i> Migrar DNS em Massa (Global)
        </div>
        <div class="card-body-dns">
            
            <?php if ($mensagem): ?>
                <div class="alert-dns alert-<?php echo $tipo_mensagem; ?>">
                    <?php echo $mensagem; ?>
                </div>
                <?php if ($detalhes): ?>
                    <?php echo $detalhes; ?>
                <?php endif; ?>
            <?php endif; ?>

            <div class="info-box">
                <p><strong>Como Funciona:</strong> Digite o texto antigo e o novo. O sistema trocará em todos os links M3U.</p>
            </div>

            <div class="warning-box">
                <strong>⚠ Atenção:</strong> Esta operação é <strong>IRREVERSÍVEL</strong>. Faça backup antes!
            </div>

            <form method="POST" action="">
                <input type="hidden" name="acao" value="migrar">
                
                <div class="form-group-dns">
                    <label>Texto a Procurar (DNS Antiga):</label>
                    <input type="text" name="texto_antigo" class="form-control-dns" placeholder="Ex: cdn.turbox.tv.br" required>
                </div>

                <div class="form-group-dns">
                    <label>Texto para Substituir (Nova DNS):</label>
                    <input type="text" name="texto_novo" class="form-control-dns" placeholder="Ex: novo-cdn.com" required>
                </div>

                <button type="submit" class="btn-dns btn-migrar">
                    <i class="fas fa-sync-alt"></i> Migrar DNS Agora
                </button>

                <a href="users.php" class="btn-dns btn-voltar" style="text-align:center; display:block; text-decoration:none;">
                    <i class="fas fa-arrow-left"></i> Voltar para Usuários
                </a>
            </form>
        </div>
    </div>
</div>

<?php include 'includes/footer.php'; ?>
