Campos
| Campo | Tipo | Descrição |
|---|---|---|
seatId | UUID | Identificador único |
vehicleId | UUID | Referência ao veículo |
seatTypeId | UUID | Referência ao tipo de assento |
label | String | Rótulo do assento (ex.: “01”, “02A”) |
floor | FloorLevel | Andar do veículo onde o assento está localizado |
row | Int | Linha no mapa de assentos |
column | String | Coluna no mapa de assentos |
side | SeatSide | Lado do veículo |
status | SeatStatus | Status do assento |
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 Vehicle
- Relaciona-se com SeatType
- Relaciona-se com múltiplos Ticket
- Relaciona-se com múltiplos TripSeatSegment
Regras de Negócio
- A unicidade dos
labelpor andar é responsabilidade do conteúdo do catálogo enviado no Vehicle Setup. - A posição do assento é definida pela combinação de
floor+row+column+side. - Assentos com status
UNAVAILABLEnão contam na capacidade de venda nem aparecem como disponíveis no mapa de assentos. Quandostatusé omitido no conteúdo aninhado, o padrão éAVAILABLE. Seaté mantido junto com o veículo, dentro do conteúdo hierárquico de Vehicle Setup.- A atualização do veículo substitui o catálogo enviado. Referências históricas em
TicketeTripSeatSegmentsão preservadas.
Enums
SeatStatus
| Valor | Descrição |
|---|---|
AVAILABLE | Assento disponível |
UNAVAILABLE | Assento não disponível |
FloorLevel
| Valor | Descrição |
|---|---|
FIRST | Primeiro andar |
SECOND | Segundo andar |
SeatSide
| Valor | Descrição |
|---|---|
LEFT | Lado esquerdo do veículo |
RIGHT | Lado direito do veículo |