'array', 'is_active' => 'boolean', 'ordine' => 'integer', ]; public function documenti() { return $this->hasMany(Documento::class, 'repository_id'); } public function getDecryptedConfig(): array { $config = $this->config; if (isset($config['password'])) { try { $config['password'] = Crypt::decryptString($config['password']); } catch (\Exception) { } } if (isset($config['refresh_token'])) { try { $config['refresh_token'] = Crypt::decryptString($config['refresh_token']); } catch (\Exception) { } } if (isset($config['client_secret'])) { try { $config['client_secret'] = Crypt::decryptString($config['client_secret']); } catch (\Exception) { } } return $config; } public function scopeAttivi($query) { return $query->where('is_active', true)->orderBy('ordine'); } public static function opzioniTipo(): array { return ['webdav', 'google_drive']; } public static function etichettaTipo(string $tipo): string { return match ($tipo) { 'webdav' => 'WebDAV', 'google_drive' => 'Google Drive', default => ucfirst($tipo), }; } public static function iconaTipo(string $tipo): string { return match ($tipo) { 'webdav' => 'fa-server', 'google_drive' => 'fa-google-drive', default => 'fa-database', }; } }