array( Frequency::Minute, Frequency::FiveMinutes, Frequency::FifteenMinutes, ), 'full' => array( Frequency::Daily, Frequency::Weekly, Frequency::Monthly, ), 'mail' => array( Frequency::Daily, Frequency::Weekly, Frequency::Never, ), 'tidy' => array( Frequency::Nightly, Frequency::Weekly ), ); private const DEFAULT_FREQUENCIES = array( 'check' => Frequency::Minute, 'full' => Frequency::Weekly, 'mail' => Frequency::Weekly, 'tidy' => Frequency::Nightly, ); /** @return list */ public function frequencies(): array { return self::FREQUENCIES[ $this->value ]; } public function default_frequency(): Frequency { return self::DEFAULT_FREQUENCIES[ $this->value ]; } /** @return non-empty-string */ public function hook_name(): string { return self::HOOK_PREFIX . $this->value; } public function accepted_frequency( mixed $frequency_name ): Frequency|null { if ( ! is_string( $frequency_name ) ) { return null; } $frequency = Frequency::tryFrom( $frequency_name ); return in_array( $frequency, $this->frequencies(), true ) ? $frequency : null; } }