62 lines
1.6 KiB
Dart
62 lines
1.6 KiB
Dart
import 'package:equatable/equatable.dart';
|
|
|
|
/// Base failure class
|
|
abstract class Failure extends Equatable {
|
|
final String message;
|
|
|
|
const Failure(this.message);
|
|
|
|
@override
|
|
List<Object> get props => [message];
|
|
}
|
|
|
|
/// Server failure
|
|
class ServerFailure extends Failure {
|
|
const ServerFailure([super.message = 'Server failure occurred']);
|
|
}
|
|
|
|
/// Cache failure
|
|
class CacheFailure extends Failure {
|
|
const CacheFailure([super.message = 'Cache failure occurred']);
|
|
}
|
|
|
|
/// Network failure
|
|
class NetworkFailure extends Failure {
|
|
const NetworkFailure([super.message = 'Network failure occurred']);
|
|
}
|
|
|
|
/// Validation failure
|
|
class ValidationFailure extends Failure {
|
|
const ValidationFailure([super.message = 'Validation failure occurred']);
|
|
}
|
|
|
|
/// Not found failure
|
|
class NotFoundFailure extends Failure {
|
|
const NotFoundFailure([super.message = 'Resource not found']);
|
|
}
|
|
|
|
/// Unauthorized failure
|
|
class UnauthorizedFailure extends Failure {
|
|
const UnauthorizedFailure([super.message = 'Unauthorized access']);
|
|
}
|
|
|
|
/// Authentication failure
|
|
class AuthenticationFailure extends Failure {
|
|
const AuthenticationFailure([super.message = 'Authentication failed']);
|
|
}
|
|
|
|
/// Invalid credentials failure
|
|
class InvalidCredentialsFailure extends Failure {
|
|
const InvalidCredentialsFailure([super.message = 'Invalid email or password']);
|
|
}
|
|
|
|
/// Token expired failure
|
|
class TokenExpiredFailure extends Failure {
|
|
const TokenExpiredFailure([super.message = 'Token has expired']);
|
|
}
|
|
|
|
/// Conflict failure (e.g., email already exists)
|
|
class ConflictFailure extends Failure {
|
|
const ConflictFailure([super.message = 'Resource already exists']);
|
|
}
|