query("SELECT * FROM recurrent_messages ORDER BY name");
$templates = $stmt->fetchAll();
$stmt = $pdo->query("SELECT * FROM recipients ORDER BY platform, name");
$recipients = $stmt->fetchAll();
} catch (Exception $e) {
$error = $e->getMessage();
}
$success = '';
$sendError = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$templateId = $_POST['template_id'];
$platform = $_POST['platform'];
$recipientIds = $_POST['recipient_ids'] ?? [];
$sendType = $_POST['send_type'] ?? 'now';
$template = null;
foreach ($templates as $t) {
if ($t['id'] == $templateId) {
$template = $t;
break;
}
}
if (!$template) {
$sendError = 'Plantilla no encontrada';
} elseif (empty($recipientIds)) {
$sendError = 'Selecciona al menos un destinatario';
} else {
foreach ($recipientIds as $recipientId) {
$recipient = null;
foreach ($recipients as $r) {
if ($r['id'] == $recipientId && $r['platform'] === $platform) {
$recipient = $r;
break;
}
}
if ($recipient) {
$sendTime = $sendType === 'now' ? date('Y-m-d H:i:s') : ($_POST['send_datetime'] ?? date('Y-m-d H:i:s'));
$messageId = createMessage([
'user_id' => getCurrentUserId(),
'content' => $template['message_content']
]);
$scheduleId = createSchedule([
'message_id' => $messageId,
'recipient_id' => $recipientId,
'send_time' => $sendTime,
'status' => 'pending'
]);
$success .= "Enviado a {$recipient['name']}
";
}
}
if ($sendType === 'now') {
require_once __DIR__ . '/process_queue.php';
processScheduledMessages();
}
}
}
require_once __DIR__ . '/templates/header.php';
?>