getConnection(); echo "════════════════════════════════════════\n"; echo " DEBUG: Turno WA → consentimiento_turno\n"; echo "════════════════════════════════════════\n\n"; // ── 1. Config WA turnero ────────────────────────────────────── echo "1. CONFIGURACIÓN WHATSAPP\n"; echo "─────────────────────────\n"; $cfgKeys = ['whatsapp_token','whatsapp_phone_number_id','whatsapp_phone_number_id_turnero', 'turnero_wa_template','turnero_wa_lang','turnero_wa_kiosko_enabled']; $cfg = $pdo->query( "SELECT clave, valor FROM lab_config WHERE clave IN ('" . implode("','", $cfgKeys) . "')" )->fetchAll(PDO::FETCH_KEY_PAIR); $tokenLen = strlen($cfg['whatsapp_token'] ?? ''); echo "Token WA: " . ($tokenLen > 0 ? "✅ presente ({$tokenLen} chars)" : "❌ VACÍO") . "\n"; echo "Phone ID principal: " . ($cfg['whatsapp_phone_number_id'] ?? '❌ no configurado') . "\n"; echo "Phone ID turnero: " . ($cfg['whatsapp_phone_number_id_turnero'] ?? '⚠️ no configurado (usará principal)') . "\n"; echo "Plantilla turno: " . ($cfg['turnero_wa_template'] ?? 'consentimiento_turno (default)') . "\n"; echo "Idioma: " . ($cfg['turnero_wa_lang'] ?? 'es_CO (default)') . "\n"; echo "Kiosko WA habilitado: " . (($cfg['turnero_wa_kiosko_enabled'] ?? '0') === '1' ? '✅ SÍ' : '❌ NO') . "\n\n"; // ── 2. Plantilla en BD ──────────────────────────────────────── echo "2. PLANTILLA EN BASE DE DATOS\n"; echo "──────────────────────────────\n"; $tplNombre = $cfg['turnero_wa_template'] ?? 'consentimiento_turno'; $tpl = $pdo->prepare("SELECT template_name, language_code, status, body_text FROM message_templates WHERE template_name = ? LIMIT 1"); $tpl->execute([$tplNombre]); $tplRow = $tpl->fetch(PDO::FETCH_ASSOC); if ($tplRow) { echo "✅ Encontrada: {$tplRow['template_name']} [{$tplRow['language_code']}] estado={$tplRow['status']}\n"; echo "Body: " . substr($tplRow['body_text'] ?? '', 0, 200) . "\n"; } else { echo "❌ Plantilla '{$tplNombre}' NO encontrada en message_templates\n"; } echo "\n"; // ── 3. Formularios de recepción configurados ────────────────── echo "3. FORMULARIOS DE CONSENTIMIENTO EN RECEPCIÓN\n"; echo "───────────────────────────────────────────────\n"; $forms = $pdo->query( "SELECT l.nombre AS desk, f.id, f.nombre AS formulario, f.is_active FROM turnero_lugar_consentimientos tlc JOIN turnero_lugares l ON l.id = tlc.lugar_id AND l.tipo = 'recepcion' JOIN lab_formularios f ON f.id = tlc.formulario_id ORDER BY l.nombre, f.nombre" )->fetchAll(PDO::FETCH_ASSOC); if ($forms) { foreach ($forms as $r) { $act = $r['is_active'] ? '✅' : '⚠️ inactivo'; echo " {$act} Desk: {$r['desk']} → [{$r['id']}] {$r['formulario']}\n"; } } else { echo "❌ Ningún formulario configurado en desks de recepción\n"; echo " Ve a Configuración → Sesión y vincula un formulario al desk de recepción\n"; } echo "\n"; // ── 4. Últimos consentimientos creados desde kiosko ─────────── echo "4. ÚLTIMOS CONSENTIMIENTOS CREADOS (recientes)\n"; echo "─────────────────────────────────────────────────\n"; $rows = $pdo->query( "SELECT tc.id, tc.turno_id, tc.estado, tc.enviado_at, tc.creado_at, tt.codigo, tt.paciente_nombre, tt.paciente_cel, f.nombre AS formulario FROM turnero_consentimientos tc JOIN turnero_turnos tt ON tt.id = tc.turno_id JOIN lab_formularios f ON f.id = tc.formulario_id ORDER BY tc.id DESC LIMIT 10" )->fetchAll(PDO::FETCH_ASSOC); if ($rows) { foreach ($rows as $r) { echo " Turno {$r['codigo']} | {$r['paciente_nombre']} | cel={$r['paciente_cel']}\n"; echo " Formulario: {$r['formulario']}\n"; echo " Estado: {$r['estado']} | Enviado: " . ($r['enviado_at'] ?? 'NO') . " | Creado: {$r['creado_at']}\n\n"; } } else { echo " Sin registros\n"; } echo "\n"; // ── 5. Test de envío ────────────────────────────────────────── if (isset($_GET['test_cel'])) { echo "5. TEST DE ENVÍO\n"; echo "─────────────────\n"; $testCel = trim($_GET['test_cel']); $testTpl = $cfg['turnero_wa_template'] ?? 'consentimiento_turno'; $testLang = $cfg['turnero_wa_lang'] ?? 'es_CO'; require_once __DIR__ . '/services/WhatsAppService.php'; try { $wa = new WhatsAppService('turnero'); $wa->sendTemplateMessage( $testCel, $testTpl, $testLang, ['Paciente Prueba', 'Consentimiento Informado', 'A001'], [($_SERVER['HTTPS'] ?? '') === 'on' ? 'https' : 'http' . '://' . $_SERVER['HTTP_HOST'] . '/ver_formulario_enviado.php?token=TEST'] ); echo "✅ Mensaje enviado a {$testCel}\n"; } catch (\Throwable $e) { echo "❌ Error: " . $e->getMessage() . "\n"; } } else { echo "5. TEST DE ENVÍO\n"; echo "─────────────────\n"; echo "Agrega ?test_cel=573001234567 a la URL para enviar un mensaje de prueba\n"; } echo "\n════ FIN ════\n";