info('No maintenance scheduled'); return self::SUCCESS; } $scheduledAtString = is_scalar($scheduledAt) ? (string) $scheduledAt : ''; $startTime = Carbon::parse($scheduledAtString); $endTime = $startTime->copy()->addMinutes($duration); $now = Carbon::now(); if ($now->between($startTime, $endTime) && ! $isEnabled) { WebsiteSetting::updateOrCreate( ['key' => 'maintenance_enabled'], ['value' => '1'], ); $this->info("Maintenance mode enabled (scheduled for {$startTime->format('Y-m-d H:i')})"); return self::SUCCESS; } if ($now->greaterThan($endTime) && $isEnabled) { WebsiteSetting::where('key', 'maintenance_enabled')->delete(); $this->info("Maintenance mode disabled (schedule ended at {$endTime->format('Y-m-d H:i')})"); WebsiteSetting::where('key', 'maintenance_scheduled_at')->delete(); WebsiteSetting::where('key', 'maintenance_duration_minutes')->delete(); return self::SUCCESS; } $this->info('No action needed'); return self::SUCCESS; } }