codice_univoco ?: $admin->codice_amministratore ?: '') : (string) $admin; $code = self::sanitizeFolder($code); if ($code === '') { $code = 'ID-0'; } return 'amministratori/' . $code; } public static function stabileFolderName(Stabile $stabile, ?Amministratore $admin = null): ?string { $admin = $admin ?: $stabile->amministratore; if (! $admin instanceof Amministratore) { return null; } $stabileCode = self::sanitizeFolder((string) ($stabile->codice_univoco ?: $stabile->codice_stabile ?: '')); if ($stabileCode === '') { return null; } // Nota: l'archivio dello stabile è già sotto /amministratori//, // quindi replicare - è ridondante. return $stabileCode; } public static function stabileBase(Stabile $stabile, ?Amministratore $admin = null): ?string { $admin = $admin ?: $stabile->amministratore; if (! $admin instanceof Amministratore) { return null; } $folder = self::stabileFolderName($stabile, $admin); if (! is_string($folder) || $folder === '') { return null; } return self::adminBase($admin) . '/stabili/' . $folder; } public static function fornitoreBase(Fornitore $fornitore, ?Amministratore $admin = null): ?string { $code = (string) ($fornitore->codice_univoco ?: ''); $code = self::sanitizeFolder($code); if ($code === '') { return null; } $admin = $admin ?: $fornitore->amministratore; if (! $admin instanceof Amministratore) { return null; } return self::adminBase($admin) . '/fornitori/' . $code; } public static function userBase(User $user, ?Amministratore $admin = null): ?string { $code = (string) ($user->codice_univoco ?: ''); $code = self::sanitizeFolder($code); if ($code === '') { return null; } $admin = $admin ?: $user->amministratoreOwner; if (! $admin instanceof Amministratore) { return null; } return self::adminBase($admin) . '/utenti/' . $code; } }