Skip to main content

Campos

CampoTipoDescrição
tripScheduleIdUUIDIdentificador único
companyIdUUIDReferência à empresa
routeIdUUIDReferência à rota
vehicleIdUUIDReferência ao veículo
driverIdUUIDReferência ao motorista
nameStringNome da programação
frequencyTripScheduleFrequencyFrequência de geração
intervalIntIntervalo entre ocorrências (default 1)
statusTripScheduleStatusEstado de ativação (default ACTIVE)
departureAtDateTimePrimeira partida programada
endAtDateTime?Fim opcional da recorrência
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

Relacionamentos

Regras de Negócio

  • Template recorrente que materializa Trip futuras vendáveis em um horizonte móvel de 90 dias (ver Trip Schedules).
  • A materialização é idempotente: a chave companyId + departureAt + routeId + vehicleId + driverId evita duplicar a mesma viagem.
  • Uma rotina diária re-materializa as programações ACTIVE, estendendo a cobertura conforme o tempo avança.
  • Apenas o name é editável; o estado muda via operações dedicadas (pause/resume/delete).

Enums

TripScheduleFrequency

ValorDescrição
DAILYA cada interval dias
WEEKLYA cada interval semanas
MONTHLYA cada interval meses; se o dia não existir no mês de destino, a ocorrência é pulada

TripScheduleStatus

ValorDescrição
ACTIVEMaterializa viagens e participa da rotina diária de materialização
PAUSEDFica fora da rotina diária de materialização
ARCHIVEDSoft-delete final

Example

{
  "tripScheduleId": "0197a80d-92d8-7c7a-a1b2-2a745fa19e11",
  "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
  "routeId": "0197a80c-4204-7b77-9005-48cc23677587",
  "vehicleId": "0197a809-3eb8-7eb8-9c4f-8a6c2e7e5b1a",
  "driverId": "0197a807-1ec7-75e8-8ff8-df64dd070046",
  "name": "São Paulo para Ribeirão Preto - manhã",
  "frequency": "DAILY",
  "interval": 1,
  "status": "ACTIVE",
  "departureAt": "2026-07-04T08:00:00.000Z",
  "endAt": null,
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T15:20:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-03T15:20:00.000Z",
  "deletedBy": null,
  "deletedAt": null
}