Files
whatsapp/examples/notification_helper_usage.php
2026-01-27 14:51:41 -05:00

119 lines
3.5 KiB
PHP

<?php
/**
* Ejemplo de uso de NotificationHelper
*
* Este archivo muestra cómo usar el helper para crear notificaciones
* que se envían automáticamente por SSE
*/
require_once __DIR__ . '/../classes/NotificationHelper.php';
// ============================================
// Ejemplo 1: Notificación cuando usuario sube documento
// ============================================
function onDocumentUploaded($userId, $documentCount) {
NotificationHelper::create(
$userId,
'document',
'Usuario subió ' . $documentCount . ' documento(s)',
[
'count' => $documentCount,
'action' => 'view_documents'
]
);
}
// ============================================
// Ejemplo 2: Notificación de mensaje importante
// ============================================
function onImportantMessage($userId, $message) {
NotificationHelper::create(
$userId,
'message',
'Mensaje importante: ' . substr($message, 0, 50),
[
'message_preview' => $message,
'priority' => 'high'
]
);
}
// ============================================
// Ejemplo 3: Notificación de cambio de estado
// ============================================
function onUserStatusChange($userId, $oldStatus, $newStatus) {
$messages = [
'in_service' => 'Usuario en atención',
'waiting' => 'Usuario esperando',
'resolved' => 'Caso resuelto'
];
NotificationHelper::create(
$userId,
'status',
$messages[$newStatus] ?? 'Estado actualizado',
[
'old_status' => $oldStatus,
'new_status' => $newStatus
]
);
}
// ============================================
// Ejemplo 4: Notificación personalizada
// ============================================
function sendCustomNotification($userId, $type, $message, $data = []) {
NotificationHelper::create($userId, $type, $message, $data);
}
// ============================================
// CÓMO USAR EN TUS ARCHIVOS PHP
// ============================================
/*
// En api/upload_media.php (cuando se sube un archivo)
require_once __DIR__ . '/../classes/NotificationHelper.php';
if ($uploadSuccess) {
NotificationHelper::create(
$userId,
'document',
'Usuario subió: ' . $fileName,
['file_name' => $fileName, 'file_type' => $fileType]
);
}
// En api/webhook.php (cuando llega mensaje con palabra clave)
if (strpos($messageText, 'urgente') !== false) {
NotificationHelper::create(
$userId,
'urgent',
'Mensaje urgente de ' . $userName,
['message' => $messageText]
);
}
// En cualquier script que necesite notificar
require_once __DIR__ . '/classes/NotificationHelper.php';
NotificationHelper::create(
$userId,
'custom',
'Tu mensaje aquí',
['custom_data' => 'value']
);
*/
// ============================================
// RESPUESTA AUTOMÁTICA POR SSE
// ============================================
// NO necesitas hacer nada más, el helper automáticamente:
// 1. Inserta la notificación en la tabla notifications
// 2. Envía el evento por SSE a todos los operadores conectados
// 3. El cliente en conversations.php recibe el evento 'notification'
// 4. Se muestra el toast de notificación automáticamente
echo "✅ NotificationHelper listo para usar\n";
echo "📖 Ver ejemplos en este archivo\n";
echo "🔔 Las notificaciones se envían automáticamente por SSE\n";