*/ public static function availableGestioni(): array { return [ 'ordinaria' => 'Gestione ordinaria', 'riscaldamento' => 'Gestione riscaldamento', 'straordinaria' => 'Gestione straordinaria', ]; } public static function resolveActiveGestione(?User $user = null): string { $available = array_keys(self::availableGestioni()); $sessionValue = session(self::SESSION_KEY); if (is_string($sessionValue) && in_array($sessionValue, $available, true)) { return $sessionValue; } $default = (string) config('netgescon.defaults.default_gestione', 'ordinaria'); if (in_array($default, $available, true)) { session([self::SESSION_KEY => $default]); return $default; } session([self::SESSION_KEY => 'ordinaria']); return 'ordinaria'; } public static function setActiveGestione(?User $user, string $gestione): bool { $available = array_keys(self::availableGestioni()); if (! in_array($gestione, $available, true)) { return false; } if (! $user) { return false; } session([self::SESSION_KEY => $gestione]); return true; } }