$next_id]; } public function start_vm(int $vm_id): void { $this->ensure_vm($vm_id); update_option('spp_mock_vm_status_' . $vm_id, 'running', false); } public function stop_vm(int $vm_id): void { $this->ensure_vm($vm_id); update_option('spp_mock_vm_status_' . $vm_id, 'stopped', false); } public function delete_vm(int $vm_id): void { $this->ensure_vm($vm_id); delete_option('spp_mock_vm_status_' . $vm_id); delete_option('spp_mock_vm_ips_' . $vm_id); } public function get_status(int $vm_id): string { return (string) get_option('spp_mock_vm_status_' . $vm_id, 'unknown'); } public function get_ip_addresses(int $vm_id): array { $ips = get_option('spp_mock_vm_ips_' . $vm_id, []); return is_array($ips) ? array_values(array_map('strval', $ips)) : []; } private function ensure_vm(int $vm_id): void { if (get_option('spp_mock_vm_status_' . $vm_id, null) === null) { throw new RuntimeException('Mock Proxmox VM does not exist.'); } } }