// POナンバーがすでに存在するエラー
export class PoNumberAlreadyExistError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'PoNumberAlreadyExistError';
  }
}

// 取り込むカードライセンスが存在しないエラー
export class LicenseNotExistError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'LicenseNotExistError';
  }
}

// 取り込むライセンスが既に取り込み済みのエラー
export class LicenseKeyAlreadyActivatedError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'LicenseKeyAlreadyActivatedError';
  }
}

// 注文不在エラー
export class OrderNotFoundError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'OrderNotFoundError';
  }
}
// 注文発行済エラー
export class AlreadyIssuedError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'AlreadyIssuedError';
  }
}
// ライセンス不足エラー
export class LicensesShortageError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'LicensesShortageError';
  }
}

// ライセンス有効期限切れエラー
export class LicenseExpiredError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'LicenseExpiredError';
  }
}
// ライセンス割り当て不可エラー
export class LicenseUnavailableError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'LicenseUnavailableError';
  }
}

// ライセンス割り当て解除済みエラー
export class LicenseAlreadyDeallocatedError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'LicenseAlreadyDeallocatedError';
  }
}

// 注文キャンセル失敗エラー
export class CancelOrderFailedError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'CancelOrderFailedError';
  }
}

// ライセンス発行キャンセル不可エラー（ステータスが変えられている場合）
export class AlreadyLicenseStatusChangedError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'AlreadyLicenseStatusChangedError';
  }
}

// ライセンス発行キャンセル不可エラー（発行から一定期間経過した場合）
export class CancellationPeriodExpiredError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'CancellationPeriodExpiredError';
  }
}

// ライセンス発行キャンセル不可エラー（発行したライセンスが割り当てされている場合）
export class AlreadyLicenseAllocatedError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'AlreadyLicenseAllocatedError';
  }
}

// ライセンス未割当エラー
export class LicenseNotAllocatedError extends Error {
  constructor(message: string) {
    super(message);
    this.name = 'LicenseNotAllocatedError';
  }
}
