Delivery (Entrega)
O Delivery representa uma entrega de produtos ou servicos ao cliente.
Descricao
O sistema de entregas controla todo o processo de envio de produtos vendidos ou busca/entrega de pets (taxidog), desde a criacao ate a finalizacao.
Dados
Informacoes da Entrega
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| reference | Texto | Auto | Codigo da entrega |
| type | Selecao | Sim | Tipo de entrega |
| status | Selecao | Sim | Status atual |
| scheduled_date | Data | Nao | Data agendada |
| scheduled_time | Hora | Nao | Horario agendado |
| delivered_at | DataHora | Auto | Data/hora da entrega |
| notes | Texto | Nao | Observacoes |
Tipos de Entrega
| Tipo | Descricao | Origem |
|---|---|---|
| sale | Entrega de venda | Sale |
| taxidog_get | Buscar pet | BeautyAppointment |
| taxidog_delivery | Entregar pet | BeautyAppointment |
| transfer | Transferencia entre lojas | StockTransfer |
Status
| Status | Descricao |
|---|---|
| pending | Pendente |
| scheduled | Agendada |
| in_transit | Em transito |
| delivered | Entregue |
| returned | Devolvida |
| canceled | Cancelada |
Relacionamentos
Pertence a
| Entidade | Obrigatorio | Descricao |
|---|---|---|
| Account | Sim | Conta do petshop |
| Store | Sim | Filial de origem |
| Customer | Sim | Cliente |
| Address | Sim | Endereco de entrega |
| Sale | Condicional | Venda (se type=sale) |
| BeautyAppointment | Condicional | Agendamento (se taxidog) |
| DeliveryArea | Nao | Area de entrega |
| DeliveryPerson | Nao | Entregador |
Possui
| Entidade | Descricao |
|---|---|
| DeliveryItems | Itens da entrega |
| DeliveryAttempts | Tentativas de entrega |
| DeliveryPhotos | Fotos de comprovacao |
Ciclo de Vida
Fluxo de Entrega
DeliveryItem
Dados
| Campo | Tipo | Descricao |
|---|---|---|
| sale_product_id | Referencia | Produto |
| quantity | Decimal | Quantidade |
| description | Texto | Descricao |
| weight | Decimal | Peso (kg) |
Taxa de Entrega
Calculo
A taxa pode ser calculada por:
| Metodo | Descricao |
|---|---|
| Fixa | Valor fixo por entrega |
| Por area | Valor por area/regiao |
| Por distancia | Valor por km |
| Por peso | Valor por kg |
| Gratis | Sem cobranca |
DeliveryFee
| Campo | Tipo | Descricao |
|---|---|---|
| fee_type | Selecao | Tipo de calculo |
| value | Monetario | Valor da taxa |
| min_value | Monetario | Pedido minimo para gratis |
| free_above | Monetario | Gratis acima de X |
Exemplo
Taxa por area:
Centro: R$ 5,00
Zona Sul: R$ 10,00
Zona Norte: R$ 15,00
Gratis para pedidos acima de R$ 200,00
Areas de Entrega
DeliveryArea
| Campo | Tipo | Descricao |
|---|---|---|
| name | Texto | Nome da area |
| zip_codes | Array | CEPs atendidos |
| neighborhoods | Array | Bairros atendidos |
| cities | Array | Cidades atendidas |
| polygon | GeoJSON | Poligono geografico |
| fee | Monetario | Taxa da area |
| delivery_time | Texto | Prazo de entrega |
| active | Booleano | Se esta ativa |
Verificacao de Cobertura
Entregadores
DeliveryPerson
| Campo | Tipo | Descricao |
|---|---|---|
| user_id | Referencia | Usuario do sistema |
| name | Texto | Nome |
| phone | Texto | Telefone |
| vehicle_type | Selecao | Tipo de veiculo |
| vehicle_plate | Texto | Placa |
| active | Booleano | Se esta ativo |
Tipos de Veiculo
| Tipo | Descricao |
|---|---|
| motorcycle | Moto |
| car | Carro |
| bicycle | Bicicleta |
| van | Van/Furgao |
| on_foot | A pe |
Roteirizacao
Otimizacao de Rota
O sistema pode sugerir ordem de entregas:
- Agrupar por regiao
- Calcular melhor sequencia
- Estimar tempo total
Rota do Entregador
Entregador: Joao
Veiculo: Moto ABC-1234
Rota do dia:
1. 09:00 - Cliente A (Centro)
2. 09:30 - Cliente B (Centro)
3. 10:15 - Cliente C (Zona Sul)
4. 11:00 - Retorno
Tentativas de Entrega
DeliveryAttempt
Cada tentativa registra:
| Campo | Tipo | Descricao |
|---|---|---|
| date_time | DataHora | Data/hora da tentativa |
| status | Selecao | Resultado |
| reason | Texto | Motivo (se nao entregue) |
| notes | Texto | Observacoes |
| photo | Imagem | Foto do local |
Motivos de Nao Entrega
| Motivo | Descricao |
|---|---|
| absent | Cliente ausente |
| wrong_address | Endereco incorreto |
| refused | Cliente recusou |
| inaccessible | Local inacessivel |
| other | Outro |
Comprovacao
Metodos de Comprovacao
| Metodo | Descricao |
|---|---|
| Assinatura | Cliente assina no dispositivo |
| Foto | Foto do produto entregue |
| Codigo | Cliente informa codigo |
| Nenhum | Sem comprovacao |
DeliveryPhoto
| Campo | Tipo | Descricao |
|---|---|---|
| photo | Imagem | Foto |
| type | Selecao | Tipo (produto, local, assinatura) |
| captured_at | DataHora | Data/hora da captura |
| location | GeoJSON | Localizacao GPS |
Taxidog
Buscar Pet (taxidog_get)
Entregar Pet (taxidog_delivery)
Notificacoes
Eventos que Disparam Notificacao
| Evento | Notificacao |
|---|---|
| Agendada | "Sua entrega foi agendada para..." |
| Em rota | "Sua entrega esta a caminho" |
| Chegando | "Entregador chegando em X minutos" |
| Entregue | "Sua entrega foi realizada" |
| Problema | "Houve um problema com sua entrega" |
Canais
| Canal | Uso |
|---|---|
| Notificacao principal | |
| SMS | Fallback |
| Confirmacao | |
| Push | App do cliente |
Validacoes
| Campo | Regra |
|---|---|
| customer_id | Obrigatorio |
| address_id | Obrigatorio |
| type | Obrigatorio |
Regras de Negocio
Horario de Entrega
| Regra | Descricao |
|---|---|
| Horario comercial | Seg-Sex 8h-18h |
| Sabado | 8h-12h |
| Domingo | Nao entrega |
Reagendamento
- Cliente pode reagendar ate 24h antes
- Limite de 2 reagendamentos
- Apos 3 tentativas, entrega cancelada
Devolucao
Se entrega devolvida:
- Produtos retornam ao estoque
- Venda pode ser cancelada ou aguardar nova entrega
- Taxa de entrega pode ou nao ser devolvida
Relatorios
| Relatorio | Descricao |
|---|---|
| Entregas por periodo | Total de entregas |
| Entregas por entregador | Performance |
| Taxa de sucesso | % entregas na primeira tentativa |
| Tempo medio | Tempo entre criacao e entrega |
| Custo de entrega | Valor total de taxas |
Permissoes
| Acao | Descricao |
|---|---|
| Criar | Criar entrega |
| Agendar | Agendar/reagendar |
| Atribuir | Atribuir entregador |
| Iniciar rota | Marcar em transito |
| Entregar | Confirmar entrega |
| Cancelar | Cancelar entrega |