$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";