/**
 * Estados de un recibo de cobranza (`recibos_cobro.estado`).
 *
 * Unificados a minúscula desde 2026-06-25 (migración `20260625_recibos_cobro_estado_minuscula`).
 * El CHECK constraint en BD (`recibos_cobro_estado_check`) garantiza que sólo
 * se acepten estos valores. Cualquier intento de insertar `'CONFIRMADO'` /
 * `'ANULADO'` / `'Anulado'` falla en la base.
 */
export enum ReciboCobroEstado {
  /** Recibo recién emitido, válido. Es el estado por defecto al crear. */
  EMITIDO = 'emitido',

  /** Recibo anulado por el usuario. No cuenta para reportes ni rendiciones. */
  ANULADO = 'anulado',

  /**
   * Recibo pendiente de confirmación (uso futuro, ej. flujos con doble
   * autorización). Permitido por el CHECK constraint pero no usado hoy.
   */
  PENDIENTE = 'pendiente',
}

/**
 * Estados que cuentan como "recibo vigente" (no anulado).
 * Usado en filtros, queries y reportes.
 */
export const RECIBO_ESTADOS_VIGENTES = [
  ReciboCobroEstado.EMITIDO,
] as const;
