getDevices())->map(fn ($d) => [ 'mac' => $d['mac'], 'name' => $d['name'] ?? $d['model'] ?? 'Unknown', 'model' => $d['model'] ?? '', 'type' => $d['type'] ?? '', 'ip' => $d['ip'] ?? '', 'version' => $d['version'] ?? '', 'state' => $d['state'] ?? 0, 'adopted' => $d['adopted'] ?? false, 'upgradable' => $d['upgradable'] ?? false, 'uptime' => $d['uptime'] ?? 0, 'num_sta' => $d['num_sta'] ?? 0, 'tx_bytes' => $d['tx_bytes'] ?? 0, 'rx_bytes' => $d['rx_bytes'] ?? 0, 'cpu' => $d['system-stats']['cpu'] ?? null, 'mem' => $d['system-stats']['mem'] ?? null, 'satisfaction' => $d['satisfaction'] ?? null, 'channels' => collect($d['radio_table'] ?? [])->map(fn ($r) => [ 'radio' => $r['radio'] ?? '', 'channel' => $r['channel'] ?? null, 'ht' => $r['ht'] ?? '', ])->values(), ])->values(); return Inertia::render('Unifi/Devices', ['devices' => $devices]); } catch (\Throwable $e) { return Inertia::render('Unifi/Devices', ['devices' => [], 'error' => $e->getMessage()]); } } public function reboot(Request $request, UnifiApiClient $unifi) { $request->validate(['mac' => 'required|string|regex:/^([0-9a-f]{2}:){5}[0-9a-f]{2}$/i']); try { $unifi->rebootDevice($request->mac); return back()->with('success', 'Reboot command sent.'); } catch (\Throwable $e) { return back()->withErrors(['error' => $e->getMessage()]); } } }