mimeType()), 'max:1024']; $imageAttrs = [ 'allow-image-crop' => true, 'allow-image-resize' => true, 'allow-image-transform' => true, 'image-crop-aspect-ratio' => '1:1', 'image-resize-target-width' => '500', 'image-resize-target-height' => '500', ]; return match ($this) { self::WEB_NAME => SettingSchema::make(InputType::TEXTLINE)->default('Acme Inc'), self::WEB_DESCRIPTION => SettingSchema::make(InputType::TEXTAREA), self::WEB_ADDRESS => SettingSchema::make(InputType::TEXTLINE)->default('123 Main St, Anytown, USA'), self::WEB_PHONE => SettingSchema::make(InputType::TEXTLINE)->default('+1234567890'), self::WEB_EMAIL => SettingSchema::make(InputType::TEXTLINE)->default('acme@web.io'), self::WEB_LOGO, self::WEB_FAVICON => SettingSchema::make(InputType::FILE, $imageRules)->attributes($imageAttrs), self::DEFAULT_LANGUAGE => SettingSchema::make(InputType::SELECT) ->default('en') ->options([ 'en' => __('domains/system/enum.system_setting_key_options.default_language.en'), 'id' => __('domains/system/enum.system_setting_key_options.default_language.id'), ]), self::TIMEZONE => SettingSchema::make(InputType::SELECT) ->default('UTC') ->options([ 'UTC' => __('domains/system/enum.system_setting_key_options.timezone.UTC'), 'Asia/Jakarta' => __('domains/system/enum.system_setting_key_options.timezone.Asia/Jakarta'), 'Asia/Makassar' => __('domains/system/enum.system_setting_key_options.timezone.Asia/Makassar'), 'Asia/Jayapura' => __('domains/system/enum.system_setting_key_options.timezone.Asia/Jayapura'), ]), default => SettingSchema::make(InputType::TEXTLINE)->rules(['nullable', 'string']), }; } public function default(): mixed { return $this->schema()->default; } public function inputAttributes(): array { return array_merge($this->schema()->attributes, [ 'label' => $this->label(), 'options' => $this->schema()->type->isSelect() ? $this->schema()->options : '', ]); } public static function section(): array { return [ [ __('domains/system/pages.settings.sections.web') => [ self::WEB_NAME, self::WEB_DESCRIPTION, self::WEB_ADDRESS, self::WEB_PHONE, self::WEB_EMAIL, self::WEB_LOGO, self::WEB_FAVICON, ], ], [ __('domains/system/pages.settings.sections.general') => [self::DEFAULT_LANGUAGE, self::TIMEZONE], __('domains/system/pages.settings.sections.webmaster') => [self::GOOGLE_TAG_MANAGER_ID, self::GOOGLE_WEBMASTER_ID], ], ]; } }