/**
 * Cancellation Reason Enum
 * Motivos de cancelación según catálogo SAT
 */

export enum CancellationReason {
  /** 01 - Comprobante emitido con errores con relación */
  ERROR_WITH_RELATION = '01',

  /** 02 - Comprobante emitido con errores sin relación */
  ERROR_WITHOUT_RELATION = '02',

  /** 03 - No se llevó a cabo la operación */
  OPERATION_NOT_PERFORMED = '03',

  /** 04 - Operación nominativa relacionada en la factura global */
  NOMINATIVE_OPERATION = '04',
}

/**
 * Descripciones de los motivos de cancelación
 */
export const CancellationReasonDescriptions: Record<CancellationReason, string> = {
  [CancellationReason.ERROR_WITH_RELATION]: 'Comprobante emitido con errores con relación',
  [CancellationReason.ERROR_WITHOUT_RELATION]: 'Comprobante emitido con errores sin relación',
  [CancellationReason.OPERATION_NOT_PERFORMED]: 'No se llevó a cabo la operación',
  [CancellationReason.NOMINATIVE_OPERATION]: 'Operación nominativa relacionada en la factura global',
};
