part of 'auth_cubit.dart';

abstract class AuthState {}

class AuthInitial extends AuthState {}

//base states
class AuthLoading extends AuthState {}

class AuthError extends AuthState {
  final String message;
  String? code;
  AuthError({required this.message, this.code});
}

class AuthSuccess extends AuthState {}

//user log states
class AuthLoginLoading extends AuthLoading {}

class AuthLoginSuccess extends AuthSuccess {}

class AuthOtpSuccess extends AuthSuccess {}

class AuthSignUpSuccess extends AuthSuccess {}

class ResendOtpSuccess extends AuthSuccess {}

class AuthLoginError extends AuthError {
  AuthLoginError({required super.message, super.code});
}

class AuthLogoutLoading extends AuthLoading {}

class AuthLogoutSuccess extends AuthSuccess {}

class AuthLogoutError extends AuthError {
  AuthLogoutError({required super.message, super.code});
}

// UI states
class AuthPasswordVisibilityChanged extends AuthState {}

class AuthAgreeToTermsChanged extends AuthState {}

//token states
class AuthTokenLoading extends AuthLoading {}

class AuthTokenSuccess extends AuthSuccess {}

class AuthTokenError extends AuthError {
  AuthTokenError({required super.message, super.code});
}

//ForgetPassword log states
class AuthForgetPassLoading extends AuthLoading {}

class AuthForgetPassSuccess extends AuthSuccess {}

class AuthForgetPassError extends AuthError {
  AuthForgetPassError({required super.message, super.code});
}

class AuthErrorStatusWithoutMsg extends AuthState {
  AuthErrorStatusWithoutMsg();
}
