[ 'en' => __('domains/identity/enum.user_setting_key.options.language.en'), 'id' => __('domains/identity/enum.user_setting_key.options.language.id'), ], self::TIMEZONE => [ 'UTC' => __('domains/identity/enum.user_setting_key.options.timezone.UTC'), 'Asia/Jakarta' => __('domains/identity/enum.user_setting_key.options.timezone.Asia/Jakarta'), 'Asia/Makassar' => __('domains/identity/enum.user_setting_key.options.timezone.Asia/Makassar'), 'Asia/Jayapura' => __('domains/identity/enum.user_setting_key.options.timezone.Asia/Jayapura'), ], self::NOTIFICATION => [ 1 => __('domains/identity/enum.user_setting_key.options.notification.on'), 0 => __('domains/identity/enum.user_setting_key.options.notification.off'), ], }; $default = match ($this) { self::NOTIFICATION => 0, self::LANGUAGE => 'en', self::TIMEZONE => 'UTC', }; return InputSchema::make() ->key($this->value) ->label($this->label()) ->type(InputType::SELECT) ->rules(['required', Rule::in(array_keys($options))]) ->default($default) ->options($options); } public function getSchema(): InputSchemaField { return $this->schema()->getSchema(); } public function default(): mixed { return $this->getSchema()->default; } }