<?php
/**
 * POST /modules/turnero/api/enviar_encuesta.php
 * Envía la plantilla "encuesta" al paciente del turno vía WhatsApp turnero.
 * Body JSON: { turno_id: int }
 */
require_once __DIR__ . '/_helpers.php';
require_once __DIR__ . '/../../../services/WhatsAppService.php';
requireMethod('POST');
requireTurnero();

$body    = inputJson();
$turnoId = (int)($body['turno_id'] ?? 0);
if (!$turnoId) jsonError('turno_id requerido.');

$pdo = db();

$row = $pdo->prepare(
    "SELECT t.paciente_cel, t.paciente_nombre,
            COALESCE(lp.telefono, t.paciente_cel) AS celular
       FROM turnero_turnos t
       LEFT JOIN lab_pacientes lp ON lp.id = t.paciente_id
      WHERE t.id = ? LIMIT 1"
);
$row->execute([$turnoId]);
$pac = $row->fetch(PDO::FETCH_ASSOC);

if (!$pac) jsonError('Turno no encontrado.', 404);

$phone = preg_replace('/[^0-9]/', '', $pac['celular'] ?? '');
if (!$phone) jsonError('El paciente no tiene número de celular registrado.');

$langRow = $pdo->prepare("SELECT language_code FROM message_templates WHERE template_name = 'encuesta_turnero' LIMIT 1");
$langRow->execute();
$lang = $langRow->fetchColumn() ?: 'es';

try {
    $wa  = new WhatsAppService('turnero');
    $meta = ['canal' => 'turnero', 'operator_id' => adminId()];
    $wa->sendTemplateMessage($phone, 'encuesta_turnero', $lang, [], [], null, $meta);
    jsonOk(['mensaje' => 'Encuesta enviada a ' . ($pac['paciente_nombre'] ?? $phone)]);
} catch (\Throwable $e) {
    jsonError('Error al enviar: ' . $e->getMessage());
}
