Campos
Relacionamentos
- Relaciona-se com User (1:1)
- Relaciona-se com múltiplos CustomerAddress
- Relaciona-se com múltiplos Employee, quando o cliente também é funcionário de uma Company
- Relaciona-se com múltiplos Order (como comprador)
- Relaciona-se com múltiplas PassengerBenefitRequest, quando solicita benefício
- Relaciona-se com múltiplos BenefitUsageHistory, quando recebe benefício aplicado a um pedido
- Relaciona-se com múltiplos PaymentMethod
- Relaciona-se com múltiplos CreditGrant, quando recebe crédito de uma Company
- Relaciona-se com múltiplos TripReview
Regras de Negócio
- Cada
Userpossui no máximo umCustomer(relação 1:1). OCustomerrepresenta o perfil de passageiro — quem compra passagens. - Quando o mesmo
Userpossui Employee em uma Company, esse Customer pode receber créditos concedidos por regra de funcionário nessa Company. - Ao criar o
Customer, o sistema registra um customer correspondente no provider de billing e guardaexternalProvider+externalProviderId. - Quando CreditGrant recebe apenas
userId, o sistema cria automaticamente um Customer mínimo usando nome, e-mail e telefone do User. documentedocumentTypesão opcionais durante esse provisionamento, mas devem ser informados juntos quando preenchidos.- O documento deve ser único quando informado.
- O endereço inicial é opcional. Quando informado, é criado junto com o Customer e marcado como
isDefault = true.