workspace/projects/gamilit/docs/01-fase-alcance-inicial/EAI-006-configuracion-sistema/requerimientos/RF-SYS-003-notifications.md
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- Configure workspace Git repository with comprehensive .gitignore
- Add Odoo as submodule for ERP reference code
- Include documentation: SETUP.md, GIT-STRUCTURE.md
- Add gitignore templates for projects (backend, frontend, database)
- Structure supports independent repos per project/subproject level

Workspace includes:
- core/ - Reusable patterns, modules, orchestration system
- projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.)
- knowledge-base/ - Reference code and patterns (includes Odoo submodule)
- devtools/ - Development tools and templates
- customers/ - Client implementations template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 10:44:23 -06:00

2.4 KiB

RF-SYS-003: Configuración de Notificaciones

ID: RF-SYS-003 Título: Sistema de Configuración de Notificaciones Prioridad: Media Estado: Implementado Fase: 1 - Alcance Inicial Épica: EAI-006 - Configuración del Sistema


📋 Descripción

Sistema de configuración de preferencias de notificaciones por usuario, permitiendo control granular sobre canales, frecuencia y horarios de entrega.


🎯 Requerimientos Funcionales

REQ-001: Canales de Notificación

Como usuario Quiero elegir por qué canales recibir notificaciones Para controlar cómo soy contactado

Canales soportados:

  • email - Correo electrónico
  • sms - Mensajes de texto
  • push - Notificaciones push
  • in_app - Notificaciones en la app
  • webhook - Webhooks para integraciones

REQ-002: Frecuencia de Notificaciones

Como usuario Quiero controlar la frecuencia de notificaciones Para evitar spam

Frecuencias:

  • immediate - Inmediato (default)
  • daily - Resumen diario
  • weekly - Resumen semanal
  • never - Nunca (desactivado)

REQ-003: Horarios Silenciosos

Como usuario Quiero definir horarios sin notificaciones Para no ser molestado en ciertos horarios

Criterios:

  • quiet_hours_start y quiet_hours_end
  • Durante este período no se envían notificaciones

REQ-004: Límites de Notificaciones

Como usuario Quiero limitar notificaciones por día Para evitar saturación

Criterios:

  • max_per_day - Máximo de notificaciones por día (default: 999)

🔧 Tabla: system_configuration.notification_settings

Columnas:

  • id - UUID (PK)
  • tenant_id - UUID
  • user_id - UUID (NOT NULL)
  • notification_type - TEXT (tipo de notificación)
  • channel - TEXT (email|sms|push|in_app|webhook)
  • is_enabled - BOOLEAN
  • frequency - TEXT (immediate|daily|weekly|never)
  • quiet_hours_start - TIME
  • quiet_hours_end - TIME
  • max_per_day - INTEGER
  • template_id - UUID
  • retry_policy - JSONB
  • delivery_settings - JSONB

Constraint: UNIQUE(user_id, notification_type, channel)


📝 Ejemplo

{
  "user_id": "550e8400-e29b-41d4-a716-446655440000",
  "notification_type": "exercise_completed",
  "channel": "email",
  "is_enabled": true,
  "frequency": "daily",
  "quiet_hours_start": "22:00",
  "quiet_hours_end": "08:00",
  "max_per_day": 5
}

Creado: 2025-11-08 Estado: Implementado