# Schema: notifications Sistema de notificaciones multi-canal (in-app, email, push web) ## Estructura - **00-create-schema.sql**: 1 archivo (creación del schema) - **tables/**: 6 archivos - **functions/**: 3 archivos **Total:** 10 objetos ## Contenido Detallado ### Schema ``` 00-create-schema.sql (creado 2025-11-11 - EXT-003) ``` ### tables/ (6 archivos) ``` 01-notifications.sql (creado 2025-11-11 - EXT-003) 02-notification_preferences.sql (creado 2025-11-11 - EXT-003) 03-notification_logs.sql (creado 2025-11-11 - EXT-003) 04-notification_templates.sql (creado 2025-11-11 - EXT-003) 05-notification_queue.sql (creado 2025-11-11 - EXT-003) 06-user_devices.sql (creado 2025-11-11 - EXT-003) ``` ### functions/ (3 archivos) ``` 01-send_notification.sql (creado 2025-11-11 - EXT-003) 02-get_user_preferences.sql (creado 2025-11-11 - EXT-003) 03-queue_batch_notifications.sql (creado 2025-11-11 - EXT-003) ``` ## Descripción ### Tablas - **notifications**: Notificaciones enviadas a usuarios (in-app, email, push) - **notification_preferences**: Preferencias de notificaciones por usuario y tipo - **notification_logs**: Historial de envíos por canal con estado y respuesta de proveedor - **notification_templates**: Plantillas reutilizables con variables {{placeholder}} - **notification_queue**: Cola de envío para procesamiento asíncrono - **user_devices**: Dispositivos registrados para push notifications ### Funciones - **send_notification()**: Crea notificación respetando preferencias del usuario y la encola - **get_user_preferences()**: Obtiene preferencias configuradas por un usuario - **queue_batch_notifications()**: Encola notificaciones masivas a múltiples usuarios ## Características - **Multi-canal**: Soporte para in-app, email y push notifications - **Preferencias de usuario**: Control granular por tipo de notificación - **Sistema de cola**: Envío asíncrono con reintentos - **Templates**: Plantillas reutilizables con variables - **Tracking completo**: Logs de envío por canal - **Priorización**: Sistema de prioridades (urgent, high, normal, low) - **Quiet hours**: Respeto de horarios de silencio por usuario --- **Última actualización:** 2025-11-11 **Relacionado:** EXT-003 (Notificaciones Multi-Canal) **Estado:** Implementado - Capa Database