import 'package:equatable/equatable.dart'; import '../../data/models/auth_response.dart'; export '../../data/models/auth_response.dart' show AuthUser; abstract class AuthState extends Equatable { const AuthState(); @override List get props => []; } class AuthInitial extends AuthState {} class AuthLoading extends AuthState {} enum AuthUnauthenticatedReason { signedOut, expired, startupRecoveryFailed } class AuthAuthenticated extends AuthState { final AuthUser user; const AuthAuthenticated({required this.user}); @override List get props => [user]; } class AuthUnauthenticated extends AuthState { final AuthUnauthenticatedReason reason; const AuthUnauthenticated({ this.reason = AuthUnauthenticatedReason.signedOut, }); @override List get props => [reason]; }