Skip to main content
O BenefitUsageHistory registra a aplicação de uma gratuidade ou desconto em um Order. O Order pertence a uma única Company, então a aplicação do benefício ocorre no total do pedido daquela empresa.

Campos

CampoTipoDescrição
benefitUsageHistoryIdUUIDIdentificador único
orderIdUUIDPedido em que o benefício foi aplicado
customerIdUUIDCliente beneficiado
fareBenefitCategoryIdUUID?Categoria de benefício aplicada
fareBenefitProgramIdUUID?Programa de benefício aplicado
passengerBenefitRequestIdUUID?Solicitação aprovada que autorizou o uso
organizationIdUUIDOrganização relacionada ao uso
companyIdUUIDEmpresa relacionada ao uso
routeIdUUID?Rota relacionada ao uso, quando aplicável
tripIdUUID?Viagem relacionada ao uso, quando aplicável
originalAmountIntValor original do pedido em centavos
discountAmountIntValor descontado em centavos
finalAmountIntValor final do pedido em centavos após o benefício
discountTypeFareBenefitDiscountType?Forma de cálculo aplicada
discountValueInt?Valor do programa aplicado no momento do uso
statusBenefitUsageStatusStatus do registro de uso
usedAtDateTimeData em que o benefício foi aplicado
reversedAtDateTime?Data de reversão do benefício, quando aplicável
createdByUUID?Usuário que criou o registro, quando aplicável
createdAtDateTimeData de criação
updatedByUUID?Usuário que fez a última atualização, quando aplicável
updatedAtDateTimeData da última atualização

Relacionamentos

Regras de Negócio

  • Cada registro representa uma aplicação de benefício no Order.
  • O Order pertence a uma única Company; por isso o benefício não precisa ser aplicado diretamente em cada Ticket.
  • Se o benefício exigir elegibilidade nominal, ela é validada por customerId e passengerBenefitRequestId.
  • discountAmount deve ser maior ou igual a zero.
  • finalAmount não pode ser menor que zero.
  • Benefício de gratuidade deve resultar em finalAmount = 0.
  • O histórico deve guardar os valores calculados no momento da aplicação, sem depender de recálculo posterior da política.
  • Reversões devem marcar status = REVERSED e preencher reversedAt.
  • createdBy e updatedBy seguem o padrão de auditoria do DEVMOB e registram o usuário responsável pela mutação, quando aplicável.

Enums

BenefitUsageStatus

ValorDescrição
APPLIEDBenefício aplicado ao pedido
REVERSEDBenefício revertido

Example

{
  "benefitUsageHistoryId": "0197f714-4f15-7e39-9ab1-51ff61aac5ea",
  "orderId": "0197a813-0fb9-7d42-9c81-50c0f6d9ae5a",
  "customerId": "0197a7f6-4d36-7c0a-a7cb-54fcb33a3148",
  "fareBenefitCategoryId": "0197f710-b826-77f0-a60b-6c62b9fdd301",
  "fareBenefitProgramId": "0197f711-bf5b-7b90-a45b-577e6269a061",
  "passengerBenefitRequestId": "0197f712-8a7e-7a53-9d28-51f8f3c77d41",
  "organizationId": "0197a801-1690-7590-b3cf-19599b9be3e4",
  "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
  "routeId": "0197a80c-4204-7b77-9005-48cc23677587",
  "tripId": "0197a80f-2d8f-7710-b243-b67fb477a1c0",
  "originalAmount": 5000,
  "discountAmount": 2500,
  "finalAmount": 2500,
  "discountType": "PERCENTAGE",
  "discountValue": 5000,
  "status": "APPLIED",
  "usedAt": "2026-07-04T13:00:00.000Z",
  "reversedAt": null,
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-04T13:00:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-04T13:00:00.000Z"
}