import '../contracts/error.dart';

class DomainError implements Exception {
  final ErrorCode code;
  final String message;
  final bool retryable;
  final Object? details;

  DomainError(this.code, this.message, {this.retryable = false, this.details});

  @override
  String toString() => 'DomainError(${code.value}): $message';
}
