statuses($devices->pluck('external_id')->all())) ->filter(fn (string $status) => $status === 'online') ->count(); return view('dashboard', [ 'zonesCount' => Zone::count(), 'devicesCount' => $devices->count(), 'onlineDevicesCount' => $onlineCount, 'activeRulesCount' => AutomationRule::where('is_active', true)->count(), ]); })->middleware(['auth', 'verified'])->name('dashboard'); Route::middleware(['auth', 'verified'])->group(function () { Route::resource('zones', ZoneController::class)->except('show'); Route::resource('devices', DeviceController::class); Route::resource('automation-rules', AutomationRuleController::class) ->except('show') ->parameters(['automation-rules' => 'automation_rule']); Route::post('/devices/{device}/turn-on', [DeviceController::class, 'turnOn'])->name('devices.turn-on'); Route::post('/devices/{device}/turn-off', [DeviceController::class, 'turnOff'])->name('devices.turn-off'); Route::post('/devices/{device}/set-level', [DeviceController::class, 'setLevel'])->name('devices.set-level'); }); Route::middleware('auth')->group(function () { Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit'); Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update'); Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy'); }); require __DIR__.'/auth.php';