Campos
| Campo | Tipo | Descrição |
|---|---|---|
vehicleId | UUID | Identificador único |
companyId | UUID | Referência à empresa |
type | VehicleType | Tipo do veículo |
licensePlate | String | Placa do veículo |
model | String | Modelo do veículo |
manufacturer | String? | Fabricante |
year | Int? | Ano de fabricação |
floorCount | FloorLevel | Quantidade de andares do veículo |
status | VehicleStatus | Status do veículo |
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 |
Relacionamentos
- Relaciona-se com Company
- Relaciona-se com múltiplos SeatType
- Relaciona-se com múltiplos Seat
- Relaciona-se com múltiplos Trip
- Relaciona-se com múltiplos TripSchedule (modelos de geração automática de viagens)
Regras de Negócio
- A placa (
licensePlate) deve ser única em todo o sistema. É normalizada em caracteres maiúsculos, sem espaços e sem hífen. - Cada veículo pertence a uma única empresa via
companyId. A multi-tenancy é resolvida na consulta viacompany.organizationId. - O campo
floorCountdetermina se o veículo é de andar simples ou double-decker. SeatTypeeSeatpertencem ao veículo e são gerenciados em conjunto com ele. O catálogo hierárquico (seatTypes[].seats[]) é opcional na criação/atualização; quando enviado, veículo e catálogo são atualizados na mesma operação. Veja Vehicle Setup.- Ativação e desativação são ações próprias do ciclo de vida do veículo.
Enums
VehicleType
| Valor | Descrição |
|---|---|
VAN | Van de transporte de passageiros |
FloorLevel
| Valor | Descrição |
|---|---|
FIRST | Primeiro andar (andar único ou andar inferior) |
SECOND | Segundo andar (andar superior — double-decker) |
VehicleStatus
| Valor | Descrição |
|---|---|
ACTIVE | Veículo ativo |
INACTIVE | Veículo inativo |