> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devmob.app.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Vehicle

> Veículos da frota de uma empresa de transporte

## 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](/data-modelling/tenant/company)
* Relaciona-se com múltiplos [SeatType](/data-modelling/fleet/seat-type)
* Relaciona-se com múltiplos [Seat](/data-modelling/fleet/seat)
* Relaciona-se com múltiplos [Trip](/data-modelling/operations/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 via `company.organizationId`.
* O campo `floorCount` determina se o veículo é de andar simples ou double-decker.
* `SeatType` e `Seat` pertencem 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](/domain/fleet/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 |

## Example

```json theme={null}
{
  "vehicleId": "0197a809-3eb8-7eb8-9c4f-8a6c2e7e5b1a",
  "companyId": "0197a801-6a42-79aa-9e56-d3c85148c0fa",
  "type": "VAN",
  "licensePlate": "ABC1D23",
  "model": "Sprinter 516",
  "manufacturer": "Mercedes-Benz",
  "year": 2024,
  "floorCount": "FIRST",
  "status": "ACTIVE",
  "createdBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "createdAt": "2026-07-03T14:20:00.000Z",
  "updatedBy": "0197a805-0910-7eb2-bae7-90a13df2a9b2",
  "updatedAt": "2026-07-03T14:20:00.000Z",
  "deletedBy": null,
  "deletedAt": null
}
```
