PromotionalMultiTicketRule representa a regra de validação para uma promoção do tipo MULTI_TICKET. Ela define a quantidade mínima de passagens e as restrições de agrupamento para aplicar o desconto.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
promotionalMultiTicketRuleId | UUID | Identificador único |
promotionalId | UUID | Promoção dona da regra |
organizationId | UUID | Organização da Company responsável pela promoção |
companyId | UUID | Company dona da promoção |
minTicketQuantity | Int | Quantidade mínima de passagens exigida |
maxTicketQuantity | Int? | Quantidade máxima de passagens elegíveis, quando aplicável |
sameOrder | Boolean | Indica se as passagens devem estar no mesmo Order |
sameTrip | Boolean | Indica se as passagens devem pertencer à mesma Trip |
samePassenger | Boolean | Indica se as passagens devem ser do mesmo passageiro |
applyTo | PromotionalMultiTicketApplyTarget | Onde o desconto é aplicado |
createdBy | UUID? | Usuário que criou o registro, quando aplicável |
createdAt | DateTime | Data de criação |
updatedBy | UUID? | Usuário que fez a última atualização, quando aplicável |
updatedAt | DateTime | Data da última atualização |
deletedBy | UUID? | Usuário que removeu o registro, quando aplicável |
deletedAt | DateTime? | Data de remoção lógica |
Relacionamentos
- Relaciona-se com Promotional por
promotionalId. - Relaciona-se com Company por
companyId.
Regras de Negócio
- Deve existir apenas para Promotional com
type = MULTI_TICKET. - Cada Promotional
MULTI_TICKETdeve ter exatamente uma PromotionalMultiTicketRule ativa. minTicketQuantitydeve ser maior que zero.maxTicketQuantity, quando preenchido, deve ser maior ou igual aminTicketQuantity.- Quando
sameOrder = true, somente tickets do mesmo Order contam para a regra. - Quando
sameTrip = true, somente tickets da mesma Trip contam para a regra. - Quando
samePassenger = true, somente tickets do mesmo Passenger contam para a regra. applyTo = ALL_TICKETSaplica o desconto em todos os tickets elegíveis.applyTo = EXTRA_TICKETSaplica o desconto apenas nos tickets acima deminTicketQuantity.applyTo = CHEAPEST_TICKETaplica o desconto no ticket de menor valor.- O front pode usar
minTicketQuantitypara exibir a promoção antes de o cliente concluir o carrinho. createdBy,updatedByedeletedByseguem o padrão de auditoria do DEVMOB e registram o usuário responsável pela mutação, quando aplicável.
Enums
PromotionalMultiTicketApplyTarget
| Valor | Descrição |
|---|---|
ALL_TICKETS | Aplica o desconto em todos os tickets elegíveis |
EXTRA_TICKETS | Aplica o desconto nos tickets acima da quantidade mínima |
CHEAPEST_TICKET | Aplica o desconto no ticket de menor valor |