BD: home_page asignado a roles que lo tenían NULL:
- recepcionista → /erp.php?m=turnero&v=recepcion
- supervisor → /lab_dashboard.php
- operador_bot → /index.php
- readonly → /lab_ordenes.php
login.php: fallback mejorado por módulos cuando home_page no aplica
(turnero → recepcion, lab_dashboard → dashboard, etc.)
index.php: redirige recepcionistas y roles sin whatsapp a su página
correcta si por algún motivo llegan al panel de WhatsApp.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- index.php: NotificationManager simplificado a stub vacío.
Los elementos notification-bell / global-notification-toasts no existen en el
markup → el setInterval cada 7s solo generaba tráfico inútil a get_notifications.php
Las notificaciones ya se manejan vía SSE en conversations.php
- send_broadcast.php: exponer debug_wamids en respuesta (wamid, wa_status, wa_contact)
para saber exactamente qué devuelve WhatsApp por cada destinatario.
Agregar dryRun log del payload completo al error_log para diagnóstico de
mensajes que WhatsApp acepta (200+wamid) pero no entrega.
- Detecta header_type=IMAGE en get_template_details.php
- send_message (individual): muestra input de imagen si la plantilla lo requiere,
sube a upload_media.php y envía header_image_url al backend
- broadcast (masivo): igual, con upload previo al envío
- api/send_message.php: acepta header_image_url y lo pasa como headerParameters
[type:image, image:{link:URL}] a WhatsAppService::sendTemplateMessage()
- api/send_broadcast.php: igual para cada destinatario del masivo
- Preview en tiempo real de la imagen seleccionada en ambos formularios