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