Campos
| Campo | Tipo | Descrição |
|---|---|---|
tripStopId | UUID | Identificador único |
tripId | UUID | Referência à viagem |
pointId | UUID | Referência ao Point do catálogo global |
stopOrder | Int | Posição ordinal da parada na sequência da viagem |
arrivalAt | DateTime? | Data/hora de chegada (null para primeira parada) |
departureAt | DateTime? | Data/hora de partida (null para última parada) |
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 |
Relacionamentos
- Relaciona-se com Trip
- Relaciona-se com Point
- Relaciona-se com múltiplos TripItinerary (como origem via
fromStopId) - Relaciona-se com múltiplos TripItinerary (como destino via
toStopId) - Relaciona-se com múltiplos TripEvent
Regras de Negócio
- Cada posição ordinal é única dentro de uma viagem.
- Nome e coordenadas da parada vivem em Point — TripStop só referencia via
pointId. - A primeira parada (
stopOrder = 0) temarrivalAt = null(é o ponto de partida). - A última parada tem
departureAt = null(é o destino final). - Os horários são preenchidos conforme a viagem progride — na criação, representam estimativas.
- Paradas definem a timeline real da viagem; dados geográficos são centralizados no catálogo global de Points.
Sequência de paradas
Viagem SP → Campinas → Ribeirão Preto (nomes resolvidos via Point):| stopOrder | Point | arrivalAt | departureAt |
|---|---|---|---|
| 0 | São Paulo | null | 08:00 |
| 1 | Campinas | 09:30 | 09:45 |
| 2 | Ribeirão Preto | 12:00 | null |