'encrypted', 'smtp_password' => 'encrypted', 'allowed_ip_ranges' => 'array', 'is_auto_update_enabled' => 'boolean', 'auto_update_frequency' => 'string', 'update_check_frequency' => 'string', ]; public function fqdn(): Attribute { return Attribute::make( set: function ($value) { if ($value) { $url = Url::fromString($value); $host = $url->getHost(); return $url->getScheme().'://'.$host; } } ); } public function updateCheckFrequency(): Attribute { return Attribute::make( set: function ($value) { return translate_cron_expression($value); }, get: function ($value) { return translate_cron_expression($value); } ); } public function autoUpdateFrequency(): Attribute { return Attribute::make( set: function ($value) { return translate_cron_expression($value); }, get: function ($value) { return translate_cron_expression($value); } ); } public static function get() { return InstanceSettings::findOrFail(0); } public function getRecepients($notification) { $recipients = data_get($notification, 'emails', null); if (is_null($recipients) || $recipients === '') { return []; } return explode(',', $recipients); } public function getTitleDisplayName(): string { $instanceName = $this->instance_name; if (! $instanceName) { return ''; } return "[{$instanceName}]"; } public function helperVersion(): Attribute { return Attribute::make( get: function ($value) { if (isDev()) { return 'latest'; } return $value; } ); } }