class ApiException implements Exception { final String message; final int? statusCode; const ApiException(this.message, {this.statusCode}); @override String toString() => 'ApiException($statusCode): $message'; } class UnauthorizedException extends ApiException { const UnauthorizedException([super.message = 'Unauthorized']) : super(statusCode: 401); } class BadRequestException extends ApiException { const BadRequestException(super.message) : super(statusCode: 400); } class NetworkException extends ApiException { const NetworkException([super.message = 'No internet connection']); }