Mejoras de sesion: estabilizacion, IA, Nexus Yonke y marketplace B2B
- F0 blindaje: Redis/Celery, pg_hba sin trust LAN, secretos a env 600, backups, webhook auth, jobs muertos - F1 caja: bugs POS, reembolsos al corte, apartados, CFDI, topes de descuento en cotizacion/apartado - F2/F7 IA de catalogo: autocategorizacion, dedup de SKUs con embeddings, OCR de facturas, descripciones, claves SAT, limpieza de fitment - F3 IA en el flujo: vision Yonke, preguntas MeLi, venta cruzada, anomalias, sinonimos, busqueda semantica (rerank/embeddings) - F4/F8 escala y cartera: /metrics+Prometheus+Grafana, pool, score de credito, churn, metricas multi-tenant - Nexus Yonke (M1-M6): modelo de datos 1-de-1, alta por donador, vitrina publica, MeLi usado, consignacion, garantia por dias, reportes, etiquetas - Marketplace B2B entre yonkes (catalogo + pedidos cross-tenant) - Seguridad: auth en /api/admin/* (35 endpoints), alertas por tenant - Migraciones v4.27/v4.28; timers expire-demos y rollup-metrics
This commit is contained in:
@@ -244,7 +244,7 @@ def _send_push(conn, tenant_id, recipient_type, recipient_id, title, body, metad
|
||||
def _send_whatsapp(conn, tenant_id, recipient_type, recipient_id, body, metadata):
|
||||
"""Send WhatsApp notification via existing service."""
|
||||
try:
|
||||
from services.whatsapp_service import send_message
|
||||
from services.whatsapp_service import wa_send_text
|
||||
cur = conn.cursor()
|
||||
phone = None
|
||||
if recipient_type == 'customer' and recipient_id:
|
||||
@@ -255,7 +255,22 @@ def _send_whatsapp(conn, tenant_id, recipient_type, recipient_id, body, metadata
|
||||
cur.close()
|
||||
|
||||
if phone:
|
||||
send_message(phone, body)
|
||||
# Route via tenant provider (Meta Cloud API / WA CRM or Baileys)
|
||||
cfg = {}
|
||||
try:
|
||||
cur2 = conn.cursor()
|
||||
cur2.execute("SELECT key, value FROM tenant_config WHERE key LIKE 'whatsapp_%' OR key LIKE 'wa_%'")
|
||||
raw = {k: v for k, v in cur2.fetchall()}
|
||||
cur2.close()
|
||||
cfg = {
|
||||
'provider': raw.get('whatsapp_provider', 'baileys'),
|
||||
'phone_number_id': raw.get('wa_phone_number_id', ''),
|
||||
'access_token': raw.get('wa_access_token', ''),
|
||||
'bridge_url': raw.get('whatsapp_bridge_url', ''),
|
||||
}
|
||||
except Exception:
|
||||
pass
|
||||
wa_send_text(cfg, phone, body)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user