LM Networks — ClickDelivery

# ClickDelivery V0.7.1 — Operación Comercial Completa

## Estado de esta iteración
V0.7.1 consolida en un solo release la Sub-Administración territorial, los canales comerciales y los pendientes operativos que venían de V0.7/referencia funcional externa como referencia funcional. Las reglas críticas se aplican en backend y PostgreSQL/PostGIS; no dependen únicamente de filtros de interfaz.

## 1. Sub-Administración por polígonos
- Rol `subadmin` ligado a uno o más `user_territories`.
- Comercios, repartidores, viajes, órdenes, tracking, banners, cupones y reportes se limitan por PostgreSQL/PostGIS.
- Realtime por `territory:<id>`; el Sub-Administrador no recibe el tópico global de la organización.
- Puede, según permisos: crear/aprobar comercios y repartidores, cancelar/reasignar envíos, consultar tracking, estados, cupones, banners y pagos en revisión.
- Puede crear perfiles subordinados sin ampliar territorios ni permisos por encima de los que posee.
- El Administrador define `commission_min_percent` y `commission_max_percent`; cualquier comisión de comercio fuera de ese rango devuelve `COMMISSION_OUTSIDE_ALLOWED_RANGE`.
- Reportes zonales: `sales.xls` y `deliveries.xls` en SpreadsheetML compatible con Excel.

## 2. Pago directo al comercio
- Cada comercio administra instrucciones de pago y QR privado.
- El cliente puede seleccionar `merchant_direct` y adjuntar comprobante/referencia.
- El comercio revisa el pago; Administrador puede supervisar pagos en revisión.
- Como el comercio ya recibió la venta, ClickDelivery no duplica el crédito: registra comisión de plataforma/franquicia y carrera como deuda del comercio.
- El wallet separa `due_to_platform` de `receivable_from_platform`.

## 3. Delivery Express
- Flujo independiente del marketplace para recojo y entrega.
- Crea un `trip` real con `service_mode=delivery_express`.
- Usa el mismo motor de distancia, tarifa territorial, tracking, asignación, PIN/evidencia y liquidación del Logistics Core.

## 4. Cupones propios por comercio
- Porcentaje o monto fijo.
- Vigencia, monto mínimo, tope, límites de uso, sucursales y productos opcionales.
- Se valida en `checkout/preflight`, forma parte del `cartHash` y se redime de manera atómica al crear la orden.

## 5. WhatsApp como canal, no como bypass
- Modo `link`: enlace prellenado.
- Modo `cloud_api`: outbox durable.
- El pedido/Express se crea primero dentro de ClickDelivery y mantiene comisión, tracking, carrera y auditoría.

## 6. Integraciones futuras LM Networks

ClickDelivery no requiere Manager Pay ni ChefManager AI para crear pedidos, cobrar directamente al comercio, despachar, trackear o liquidar.
- Si la organización exige prepago y el conector está `ready`, el checkout crea un `checkout_payment_intent` antes de la orden.
- La orden de plataforma solo se confirma cuando el intento está `authorized` o `paid`.
- Manager Pay y ChefManager AI quedan fuera del flujo productivo. No hay webhooks externos activos en V0.7.2.
- `payment_intent_id` queda consumido y ligado a la orden para evitar doble uso.

## 7. Zonas y tarifas reales
- `territory_delivery_tariffs` parametriza por polígono y `service_mode` (`marketplace` / `delivery_express`).
- Base, km incluidos, precio/km, mínimo, máximo, multiplicador y prioridad.
- Usa Google Routes cuando está configurado; el fallback PostGIS se marca explícitamente como aproximado.
- La cotización conserva `territory_id`, `tariff_id`, fuente y detalle de la tarifa.

## 8. Agrupación y despacho múltiple optimizado
- Se mantienen `dispatch_batches` para varios pedidos por repartidor.
- V0.7.1 agrega `dispatch_optimization_plans` con TTL, selección del repartidor y orden de entregas por heurística de proximidad/carga/rating.
- Administrador y Sub-Administrador con alcance válido pueden generar y confirmar el plan.

## 9. Saldos y liquidaciones automáticas
- Wallet por comercio y liquidaciones manuales existentes.
- `merchant_settlement_rules` permite frecuencia diaria/semanal y monto mínimo.
- Worker genera liquidaciones pendientes sin mezclar deuda del comercio con saldo que ClickDelivery le debe.

## 10. Comandas térmicas
- ESC/POS 58 mm y 80 mm.
- Comercio puede enviar trabajos a impresora Bluetooth emparejada y registrar resultado del job.

## 11. Android — cuatro apps
- Administrador: operación global/subadmin, tarifas territoriales, despacho optimizado, reglas de liquidación.
- Comercio: pedidos, pago directo/QR, revisiones, cupones, WhatsApp, Express, wallet, auto-liquidación y térmica 58/80.
- Delivery/Usuario: marketplace, cupón, preflight, tarifa, integración financiera futura LM Networks, pago directo y tracking.
- Repartidor: disponibilidad, GPS background/offline, batches, viaje, evidencia y ganancias.

## Identidad visual
Los logos/iconos oficiales siguen byte por byte intactos y el color primario oficial permanece `#FF411F`. `npm run brand:check` forma parte de `npm run check`.

## Validación de entorno
- `npm run check`: aprobado.
- Smoke PostgreSQL/PostGIS de integración: incluido, pero no ejecutado sin una instancia real disponible.
- `assembleDebug`/release Android: no marcado como aprobado en este contenedor porque falta el toolchain Android completo y la firma original de producción.
