michangarrito/docs/01-epicas/MCH-016-entregas-domicilio.md
rckrdmrd 3bba4ce6d7 feat: Add complete epic documentation and orchestration inventories
Sprint 3-4 deliverables:
- 28 epics documented (MCH-001 to MCH-028)
- 7 development phases fully documented
- DATABASE_INVENTORY.yml, BACKEND_INVENTORY.yml, FRONTEND_INVENTORY.yml
- Task traces for database and frontend

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:40:13 -06:00

4.0 KiB

MCH-016: Entregas a Domicilio

Metadata

  • Codigo: MCH-016
  • Fase: 4 - Pedidos y Clientes
  • Prioridad: P2
  • Estado: Pendiente
  • Fecha estimada: Sprint 10-11

Descripcion

Sistema de entregas a domicilio para micro-negocios: definicion de zonas de cobertura, costos de envio, asignacion de repartidores, y tracking basico del pedido.

Objetivos

  1. Definir zonas de cobertura
  2. Configurar costos de envio
  3. Asignar repartidores
  4. Tracking basico de entrega
  5. Confirmacion de entrega

Alcance

Incluido

  • Zonas de cobertura (radio o colonias)
  • Costo de envio fijo o por zona
  • Asignacion manual de repartidor
  • Estados: asignado, en camino, entregado
  • Confirmacion con foto/firma

Excluido

  • GPS tracking en tiempo real
  • Optimizacion de rutas
  • Integracion con apps de delivery
  • Repartidores externos (Rappi, Uber)

Modelo de Datos

Tablas Adicionales

delivery_zones

  • id, tenant_id, name, type (radius/polygon)
  • coordinates (JSONB), delivery_fee
  • min_order, estimated_time, active

deliveries

  • id, order_id, assigned_to (user_id)
  • status, pickup_at, delivered_at
  • delivery_address, notes
  • proof_photo_url, signature_url

Flujo de Entrega

Cliente Solicita Delivery

Bot: "¿Como quieres recibir tu pedido?
      [Paso a recoger] [Enviar a domicilio]"

Cliente: [Enviar a domicilio]

Bot: "¿A que direccion lo enviamos?"

Cliente: "Calle Hidalgo 45, Col. Centro"

Bot: "Perfecto! Envio a Col. Centro = $25
      Total con envio: $79
      Tiempo estimado: 30-45 min

      ¿Confirmas?
      [Confirmar] [Cambiar direccion]"

Asignacion de Repartidor

1. Pedido confirmado con delivery
2. Dueno ve pedido en dashboard
3. Asigna a repartidor (empleado)
4. Repartidor recibe notificacion
5. Cliente notificado: "Tu pedido va en camino"

Confirmacion de Entrega

1. Repartidor llega a direccion
2. Entrega pedido
3. Toma foto de entrega (opcional)
4. Marca como entregado en app
5. Cliente recibe: "Pedido entregado!"

Endpoints API

Metodo Endpoint Descripcion
GET /delivery/zones Zonas de cobertura
POST /delivery/zones Crear zona
PUT /delivery/zones/:id Editar zona
DELETE /delivery/zones/:id Eliminar zona
POST /delivery/check-coverage Verificar cobertura
POST /orders/:id/assign-delivery Asignar repartidor
PUT /deliveries/:id/status Actualizar estado
POST /deliveries/:id/confirm Confirmar entrega

Configuracion de Zonas

Por Radio

{
  type: 'radius',
  center: { lat: 19.4326, lng: -99.1332 },
  radius_km: 3,
  delivery_fee: 25,
  estimated_time: 30
}

Por Colonias

{
  type: 'polygon',
  name: 'Centro',
  colonias: ['Centro', 'Roma Norte', 'Condesa'],
  delivery_fee: 30,
  estimated_time: 45
}

UI Components

DeliveryZonesMap

  • Mapa con zonas definidas
  • Edicion visual de poligonos
  • Configuracion de tarifas

DeliveryAssignment

  • Lista de pedidos pendientes de asignar
  • Dropdown de repartidores disponibles
  • Boton asignar

DeliveryTracking (Mobile - Repartidor)

  • Lista de entregas asignadas
  • Boton "En camino"
  • Boton "Entregado" + foto

Entregables

Entregable Estado Archivo
delivery.module Pendiente modules/delivery/
delivery_zones tabla Pendiente DDL
DeliveryZonesMap Pendiente components/delivery/
Mobile delivery screen Pendiente mobile/screens/Delivery.tsx

Dependencias

Depende de

  • MCH-015 (Pedidos WhatsApp)
  • MCH-002 (Auth - para repartidores)

Bloquea a

  • Ninguno

Criterios de Aceptacion

  • Zonas de cobertura se configuran
  • Costo de envio se calcula correctamente
  • Repartidor recibe notificacion
  • Estados de entrega funcionan
  • Confirmacion con foto funciona

Roles

Rol Permisos
owner Configurar zonas, ver todas las entregas
employee Asignar entregas, ver entregas
delivery Ver entregas asignadas, actualizar estado

Ultima actualizacion: 2026-01-07