'integer', 'rotate_password' => 'boolean', 'schedule' => 'array', ]; /** * Returns true if this PPSK should be active at the given day (0=Sun…6=Sat) * and half-hour slot (0=00:00, 47=23:30). * A null schedule means always-on. */ public function isScheduledOnAt(int $day, int $slot): bool { if (! $this->schedule) return true; return (bool) ($this->schedule[$day * 48 + $slot] ?? true); } }