import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:shuffle/features/auth/domain/auth_user.dart'; part 'auth_status.freezed.dart'; /// Anmeldestatus der App. /// /// [AuthStatus.passwordRecovery] gilt nur im laufenden Prozess: Eine /// Recovery-Sitzung ist nach einem Neustart nicht mehr von einer normalen /// Anmeldung zu unterscheiden (Spec #1 ยง 5.4, Risiko R12). @freezed sealed class AuthStatus with _$AuthStatus { const AuthStatus._(); const factory AuthStatus.signedOut() = SignedOut; const factory AuthStatus.signedIn(AuthUser user) = SignedIn; const factory AuthStatus.passwordRecovery( AuthUser user, { @Default(false) bool passwordChanged, }) = PasswordRecovery; bool get isSignedOut => this is SignedOut; bool get isPasswordRecovery => this is PasswordRecovery; }