import '../../../../core/network/api_error.dart';

/// 결재 열람 권한이 없을 때 던지는 예외.
///
/// - 목록/상세 API가 `403`(`APPROVAL_ACCESS_DENIED`)을 반환하면 이 예외로 변환한다.
class ApprovalAccessDeniedException implements Exception {
  const ApprovalAccessDeniedException({
    this.message = '결재를 조회할 권한이 없습니다.',
    this.cause,
  });

  /// 사용자에게 노출할 안내 메시지.
  final String message;

  /// 원본 API 예외.
  final ApiException? cause;

  @override
  String toString() =>
      'ApprovalAccessDeniedException(message: $message, cause: $cause)';
}
