34 lines
964 B
Dart
Raw Normal View History

2025-10-24 02:02:00 +07:00
part of 'auth_bloc.dart';
@freezed
class AuthState with _$AuthState {
const AuthState._();
const factory AuthState({
required User user,
2025-10-24 13:55:00 +07:00
required Outlet outlet,
2025-10-24 02:02:00 +07:00
@Default(AuthStatus.initial()) AuthStatus status,
required Option<AuthFailure> failureOption,
2025-10-24 13:55:00 +07:00
required Option<OutletFailure> failureOutletOption,
2025-10-24 02:02:00 +07:00
@Default(false) bool isFetching,
2025-10-24 13:55:00 +07:00
@Default(false) bool isFetchingOutlet,
2025-10-24 02:02:00 +07:00
}) = _AuthState;
2025-10-24 13:55:00 +07:00
factory AuthState.initial() => AuthState(
user: User.empty(),
failureOption: none(),
outlet: Outlet.empty(),
failureOutletOption: none(),
);
2025-10-24 02:02:00 +07:00
bool get isAuthenticated => status == const AuthStatus.authenticated();
bool get isInitial => status == const AuthStatus.initial();
}
@freezed
sealed class AuthStatus with _$AuthStatus {
const factory AuthStatus.authenticated() = _Authenticated;
const factory AuthStatus.unauthenticated() = _Unauthenticated;
const factory AuthStatus.initial() = _Initial;
}