<?php
// Arquivo: test_dns_update.php
// Testar atualização automática de DNS

ini_set('display_errors', 1);
error_reporting(E_ALL);

require_once 'includes/DNSDatabase.php';
require_once 'includes/DNSUpdater.php';

echo "<!DOCTYPE html>
<html>
<head>
    <title>Teste Atualização DNS</title>
    <style>
        body { font-family: monospace; padding: 20px; }
        .success { color: green; }
        .error { color: red; }
        .info { color: blue; }
        .box { border: 1px solid #ccc; padding: 10px; margin: 10px 0; background: #f9f9f9; }
    </style>
</head>
<body>
    <h1>Teste de Atualização Automática de DNS</h1>";

$dnsDB = DNSDatabase::getInstance();
$updater = new DNSUpdater();

// Criar uma DNS de teste para revenda
echo "<div class='box'>";
echo "<h2>1. Criar DNS de Teste para Revenda</h2>";
$test_dns = "http://teste-update.com:8080";
$test_nome = "DNS Teste Update";

$result = $dnsDB->create($test_nome, $test_dns, 'revenda', 'aa');
if ($result) {
    echo "<p class='success'>✓ DNS de teste criada: $test_nome - $test_dns</p>";
    
    // Criar um usuário de teste com esta DNS
    $db = new SQLite3('a/.eggziedb.db');
    $mac_teste = "AA:BB:CC:DD:EE:FF";
    $usuario_teste = "teste_update_" . time();
    
    $expire_date = date('Y-m-d', strtotime('+1 year'));
    
    $db->exec("INSERT INTO ibo (mac_address, username, password, expire_date, url, title, created_at, seller, extra) 
               VALUES ('$mac_teste', '$usuario_teste', '123456', '$expire_date', '$test_dns', 'Teste DNS', datetime('now'), 'aa', 'Usuário de teste')");
    
    echo "<p class='success'>✓ Usuário de teste criado com a DNS: $test_dns</p>";
    $db->close();
} else {
    echo "<p class='error'>✗ Erro ao criar DNS de teste</p>";
}
echo "</div>";

echo "<div class='box'>";
echo "<h2>2. Buscar Usuários que usam a DNS de Teste</h2>";
$users = $updater->getUsersByDNS($test_dns, 'aa');
echo "<p>Encontrados: " . count($users) . " usuário(s)</p>";
foreach ($users as $user) {
    echo "<p>- {$user['username']} ({$user['mac_address']})</p>";
}
echo "</div>";

echo "<div class='box'>";
echo "<h2>3. Atualizar DNS para novo endereço</h2>";
$new_dns = "http://novo-endereco-update.com:8080";
$new_nome = "DNS Teste Atualizado";

// Buscar a DNS criada
$dns_info = $dnsDB->getByDns($test_dns, 'revenda', 'aa');
if ($dns_info) {
    echo "<p>DNS ID: {$dns_info['id']}</p>";
    echo "<p>DNS Antiga: {$dns_info['dns']}</p>";
    
    // Atualizar DNS
    $result = $dnsDB->update($dns_info['id'], $new_nome, $new_dns, 'revenda', 'aa');
    if ($result) {
        echo "<p class='success'>✓ DNS atualizada para: $new_dns</p>";
        
        // Atualizar usuários
        $updated = $updater->updateUsersDNS($test_dns, $new_dns, 'revenda', 'aa');
        echo "<p class='success'>✓ $updated usuário(s) atualizado(s) automaticamente</p>";
    }
}
echo "</div>";

echo "<div class='box'>";
echo "<h2>4. Verificar se o usuário foi atualizado</h2>";
$db = new SQLite3('a/.eggziedb.db');
$result = $db->query("SELECT * FROM ibo WHERE url = '$new_dns' AND seller = 'aa'");
$count = 0;
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
    $count++;
    echo "<p>- Usuário: {$row['username']} - DNS: {$row['url']}</p>";
}
echo "<p>Total de usuários com a nova DNS: $count</p>";
$db->close();
echo "</div>";

echo "<div class='box'>";
echo "<h2>5. Limpar dados de teste</h2>";
// Deletar DNS de teste
$dnsDB->delete($dns_info['id'], 'revenda', 'aa');
// Deletar usuário de teste
$db = new SQLite3('a/.eggziedb.db');
$db->exec("DELETE FROM ibo WHERE seller = 'aa' AND url = '$new_dns'");
$db->close();
echo "<p class='success'>✓ Dados de teste removidos</p>";
echo "</div>";

echo "<br><a href='dns_manager.php' class='btn btn-primary'>Voltar para DNS Manager</a>";

$dnsDB->close();
$updater->close();

echo "</body></html>";
?>