<?php
$f = "/var/www/html/mikrotik/views/device_form.php";
$c = file_get_contents($f);

if (!$c) { echo "FAIL: nao conseguiu ler o arquivo\n"; exit(1); }

if (strpos($c, 'SNMP OK (resposta recebida)') !== false) {
    echo "SKIP: patch ja aplicado\n";
    exit(0);
}

$old = '                    // Recarrega dados atualizados
                    $s = $pdo->prepare("SELECT * FROM nms_devices WHERE id=? AND user_id=?");
                    $s->execute([$editId, $user[\'id\']]);
                    $dev = $s->fetch();
                    $successMsg = \'Equipamento atualizado com sucesso!\';';

$new = '                    // Recarrega dados atualizados
                    $s = $pdo->prepare("SELECT * FROM nms_devices WHERE id=? AND user_id=?");
                    $s->execute([$editId, $user[\'id\']]);
                    $dev = $s->fetch();

                    // Testa conexao SNMP imediatamente apos salvar
                    $testResult = \'\';
                    if ($snmp_enabled && $dev) {
                        require_once __DIR__ . \'/../../mikrotik/includes/snmp.php\';
                        $uptime = nms_get_uptime($dev);
                        $cpu    = nms_get_cpu($dev);
                        if ($uptime !== null || $cpu !== null) {
                            $pdo->prepare("UPDATE nms_devices SET last_status=\'online\', last_check_at=NOW() WHERE id=?")
                                ->execute([$editId]);
                            $testResult = \' - SNMP OK (resposta recebida)\';
                        } else {
                            $testResult = \' - SNMP sem resposta (verifique IP, community e porta)\';
                        }
                    }
                    $successMsg = \'Equipamento atualizado com sucesso!\' . $testResult;';

if (strpos($c, $old) !== false) {
    file_put_contents($f, str_replace($old, $new, $c));
    echo "OK: patch aplicado\n";
} else {
    echo "FAIL: ancora nao encontrada\n";
    // Debug: mostra o trecho exato
    $lines = explode("\n", $c);
    foreach ($lines as $i => $line) {
        if (strpos($line, 'Recarrega dados') !== false) {
            echo "Linhas " . ($i+1) . " a " . ($i+8) . ":\n";
            for ($j = $i; $j < min($i+8, count($lines)); $j++) {
                echo ($j+1) . ": " . $lines[$j] . "\n";
            }
            break;
        }
    }
}
echo "DONE\n";
