Files
retail/lib/core/errors/failures.dart
Phuoc Nguyen 04f7042b8d update api
2025-10-10 17:15:40 +07:00

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']);
}