Skip to main content
O Passenger representa a pessoa que viaja em uma passagem. Ele não é necessariamente o comprador (Customer) nem precisa ter conta (User) no DEVMOB. Esse modelo permite cenários como uma pessoa comprando passagens para familiares, funcionários ou terceiros. O comprador continua sendo o Customer do Order; o viajante de cada passagem fica em Passenger.

Campos

CampoTipoDescrição
passengerIdUUIDIdentificador único
nameStringNome do passageiro
documentStringDocumento do passageiro
documentTypeDocumentTypeTipo do documento
birthDateDate?Data de nascimento
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
deletedByUUID?Usuário que removeu o registro, quando aplicável
deletedAtDateTime?Data de remoção lógica

Relacionamentos

  • Relaciona-se com múltiplos Ticket

Regras de Negócio

  • Passenger identifica o viajante de uma passagem, não o comprador do pedido.
  • Um Customer pode comprar tickets para si ou para outros passageiros.
  • O par document + documentType é único.
  • Durante a criação de um pedido, o passageiro é resolvido por document + documentType.
  • Se já existir passageiro com o mesmo documento e tipo, o registro é reutilizado e name/birthDate podem ser atualizados com os dados mais recentes enviados no pedido.
  • O Ticket mantém um snapshot.passenger denormalizado para preservar os dados exibidos no momento da emissão.
  • Atualizações posteriores no Passenger não devem alterar o snapshot de tickets já emitidos.

Enums

DocumentType

ValorDescrição
CPFCadastro de Pessoa Física
CNPJCadastro Nacional da Pessoa Jurídica
RGRegistro Geral

Example

{
  "passengerId": "0197a814-2460-74c2-a8d7-819a6a0d6f54",
  "name": "Mariana Costa",
  "document": "12345678909",
  "documentType": "CPF",
  "birthDate": "1992-04-18",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T16:00:30.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-03T16:00:30.000Z",
  "deletedBy": null,
  "deletedAt": null
}