# Rota

Uma **rota** é um agrupamento de pedidos organizados em uma sequência de paradas otimizada para entrega. A Abbiamo calcula o trajeto ideal e permite acompanhar a execução em tempo real.

---

## Tipos de rota

| Tipo | Quem executa |
|------|--------------|
| **Frota Própria** | Motorista cadastrado na plataforma — veículo e motorista são da empresa |
| **Transportadora** | Transportadora externa — a rota é convertida em uma solicitação de coleta em lote |
**Contexto GO:** No GO, o tipo mais comum é **Frota Própria**, onde o motorista cadastrado na plataforma executa as entregas. O tipo **Transportadora** é usado quando a operação precisa acionar um parceiro externo para determinadas rotas.

---

## Status de rota

| Status | Significado |
|--------|-------------|
| `CREATED` | Rota criada, ainda não iniciada |
| `START_DELIVERY` | Entregas em andamento |
| `CANCELED` | Rota cancelada manualmente |
| `ALL_WAYPOINTS_FINISHED` | Todas as paradas concluídas, aguardando finalização |
| `FINISHED` | Rota finalizada com sucesso |

---

## Estrutura de uma rota

### Informações principais

| Campo | Descrição |
|-------|-----------|
| **Nome** | Identificador amigável da rota |
| **Tipo** | Frota Própria ou Transportadora |
| **Armazém** | Local de partida dos pedidos (endereço da [filial](https://abbiamo-guide.netlify.app/go/conceitos/filial/)) |
| **Motorista** | Responsável pela execução (apenas Frota Própria) |
| **Transportadora** | Parceiro externo (apenas modo Transportadora) |

### Waypoints (paradas)

Cada pedido na rota é uma **parada** (*waypoint*) com:
- Endereço de entrega
- Janela de horário (quando configurada)
- Status individual da parada (ex.: entregue, falhou, pendente)
- Comprovante de entrega (foto, assinatura, código)

---

## Fluxo de criação

1. **Selecionar pedidos** — escolher quais pedidos entrarão na rota.
2. **Configurar** — definir armazém de origem e responsável (motorista ou transportadora).
3. **Sugerir rota** — a plataforma otimiza a sequência de paradas.
4. **Visualizar prévia** — revisar o trajeto no mapa antes de confirmar.
5. **Confirmar** — rota criada e (se Frota Própria) motorista notificado.

---

## Ciclo de vida

```
CREATED → START_DELIVERY → ALL_WAYPOINTS_FINISHED → FINISHED
                        ↘ CANCELED
```

Uma rota pode ser cancelada manualmente enquanto estiver em `CREATED` ou `START_DELIVERY`.

---

## Ações disponíveis por status

| Ação | CREATED | START_DELIVERY | ALL_WAYPOINTS_FINISHED |
|------|---------|----------------|------------------------|
| Atribuir motorista | ✓ | — | — |
| Solicitar coleta (TRP) | ✓ | — | — |
| Duplicar | ✓ | ✓ | ✓ |
| Cancelar | ✓ | ✓ | — |

---

## Onde aparece

- [**Tela de Rotas (GO)**](https://abbiamo-guide.netlify.app/go/products/rotas/) — criação e acompanhamento de rotas.
- [**Pedidos**](https://abbiamo-guide.netlify.app/go/products/pedidos/) — cada pedido exibe a rota à qual está associado (quando houver).