up
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
<?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";
|
||||
Reference in New Issue
Block a user