PromotionalRoundTripRule representa a regra de validação para uma promoção do tipo ROUND_TRIP. Ela define como o sistema reconhece ida e volta e onde o desconto deve ser aplicado.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
promotionalRoundTripRuleId | 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 |
outboundRouteId | UUID? | Rota de ida exigida, quando a regra é restrita a uma rota |
returnRouteId | UUID? | Rota de volta exigida, quando a regra é restrita a uma rota |
sameRoute | Boolean | Indica se ida e volta devem pertencer ao mesmo par de rota |
minHoursBetweenTrips | Int? | Intervalo mínimo entre ida e volta |
maxDaysBetweenTrips | Int? | Janela máxima entre ida e volta |
applyTo | PromotionalRoundTripApplyTarget | 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. - Relaciona-se com Route por
outboundRouteId, quando preenchido. - Relaciona-se com Route por
returnRouteId, quando preenchido.
Regras de Negócio
- Deve existir apenas para Promotional com
type = ROUND_TRIP. - Cada Promotional
ROUND_TRIPdeve ter exatamente uma PromotionalRoundTripRule ativa. - Quando
outboundRouteIdestiver preenchido, a ida deve pertencer à Route informada. - Quando
returnRouteIdestiver preenchido, a volta deve pertencer à Route informada. - Quando
sameRoute = true, ida e volta devem formar o mesmo par operacional definido pela Company. minHoursBetweenTripsemaxDaysBetweenTripsvalidam a janela entre a partida da ida e a partida da volta.applyTo = RETURN_TICKETaplica o desconto somente na passagem de volta.applyTo = CHEAPEST_TICKETaplica o desconto na passagem de menor valor.applyTo = ORDERaplica o desconto no Order após validar ida e volta.- O front pode usar a regra para sugerir a compra de volta quando o cliente escolhe uma ida elegível.
createdBy,updatedByedeletedByseguem o padrão de auditoria do DEVMOB e registram o usuário responsável pela mutação, quando aplicável.
Enums
PromotionalRoundTripApplyTarget
| Valor | Descrição |
|---|---|
RETURN_TICKET | Aplica o desconto na passagem de volta |
CHEAPEST_TICKET | Aplica o desconto na passagem de menor valor |
ORDER | Aplica o desconto no pedido |