<?php
// update_existing_devices.php
date_default_timezone_set('America/Sao_Paulo');

$DB_FILE = __DIR__ . '/ping/ping.db';

if (!file_exists($DB_FILE)) {
    die("Banco não encontrado: $DB_FILE");
}

// Função de detecção simplificada
function detectByMAC($mac) {
    $mac_clean = strtoupper(str_replace([':', '-', ' '], '', $mac));
    
    // Emuladores conhecidos
    $emulator_prefixes = ['4DD7A1', '555555', '000000', 'A1B2C3', '123456', '6CC374', '8C8590'];
    foreach ($emulator_prefixes as $prefix) {
        if (strpos($mac_clean, $prefix) === 0) {
            return '💻 Emulador/PC';
        }
    }
    
    return '📱 Celular/Tablet';
}

try {
    $db = new SQLite3($DB_FILE);
    
    // Garantir coluna existe
    $db->exec("ALTER TABLE pings ADD COLUMN device_type TEXT DEFAULT '🌐 Desconhecido'");
    
    echo "<h3>🔄 ATUALIZANDO DISPOSITIVOS EXISTENTES</h3>";
    
    $result = $db->query("SELECT mac, ip FROM pings ORDER BY last_ping DESC");
    
    $updated = 0;
    
    while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
        $mac = $row['mac'];
        $ip = $row['ip'];
        
        // Detectar pelo MAC
        $device_type = detectByMAC($mac);
        
        // Atualizar
        $stmt = $db->prepare("UPDATE pings SET device_type = :device WHERE mac = :mac");
        $stmt->bindValue(':device', $device_type, SQLITE3_TEXT);
        $stmt->bindValue(':mac', $mac, SQLITE3_TEXT);
        
        if ($stmt->execute()) {
            $updated++;
            echo "<div style='padding: 5px; border-bottom: 1px solid #ccc;'>
                    <strong>$mac</strong> → $device_type<br>
                    <small>IP: $ip</small>
                  </div>";
        }
    }
    
    echo "<h3 style='color: green;'>✅ CONCLUÍDO!</h3>";
    echo "<p>Total atualizado: $updated dispositivos</p>";
    echo "<p><a href='monitor_ping.php'>Ver no Monitor</a></p>";
    
    $db->close();
    
} catch (Exception $e) {
    die("Erro: " . $e->getMessage());
}
?>