-- ===================================================== -- Seeds: notification_templates -- Schema: notifications -- Descripción: Plantillas predefinidas para sistema de notificaciones multi-canal -- Relacionado: EXT-003 (Notificaciones Multi-Canal) -- Fecha: 2025-11-13 -- ===================================================== -- -- IMPORTANTE: -- - Plantillas usan sintaxis {{variable_name}} para interpolación -- - Variables disponibles en JSONB para validación -- - default_channels define canales por defecto (in_app, email, push) -- -- ===================================================== -- Template 1: Bienvenida al sistema INSERT INTO notifications.notification_templates ( template_key, name, description, subject_template, body_template, html_template, variables, default_channels, is_active ) VALUES ( 'welcome_email', 'Bienvenida al Sistema', 'Email de bienvenida para nuevos usuarios', '¡Bienvenido a Gamilit, {{user_name}}!', 'Hola {{user_name}}, ¡Bienvenido a Gamilit! Estamos emocionados de tenerte con nosotros. Tu cuenta ha sido creada exitosamente con el correo: {{user_email}} Empieza tu aventura de aprendizaje explorando nuestros módulos educativos y desbloquea logros mientras aprendes. ¡Buena suerte! Equipo Gamilit', '
Estamos emocionados de tenerte con nosotros.
Tu cuenta ha sido creada exitosamente con el correo: {{user_email}}
¡Buena suerte en tu aventura de aprendizaje!
Equipo Gamilit
', '["user_name", "user_email"]'::jsonb, ARRAY['email'], true ); -- Template 2: Nueva asignación INSERT INTO notifications.notification_templates ( template_key, name, description, subject_template, body_template, html_template, variables, default_channels, is_active ) VALUES ( 'new_assignment', 'Nueva Asignación', 'Notificación cuando se asigna nueva tarea al estudiante', 'Nueva asignación: {{assignment_title}}', 'Hola {{student_name}}, Tu profesor {{teacher_name}} te ha asignado una nueva tarea: 📚 {{assignment_title}} 📅 Fecha de entrega: {{due_date}} 📝 Módulo: {{module_name}} Descripción: {{assignment_description}} ¡No olvides completarla antes de la fecha límite! Accede a la plataforma para ver más detalles.', 'Hola {{student_name}},
Tu profesor {{teacher_name}} te ha asignado una nueva tarea:
📅 Fecha de entrega: {{due_date}}
📝 Módulo: {{module_name}}
Descripción:
{{assignment_description}}
¡No olvides completarla antes de la fecha límite!
Ver Asignación ', '["student_name", "teacher_name", "assignment_title", "assignment_description", "due_date", "module_name", "assignment_url"]'::jsonb, ARRAY['email', 'push', 'in_app'], true ); -- Template 3: Recordatorio de tarea próxima a vencer INSERT INTO notifications.notification_templates ( template_key, name, description, subject_template, body_template, html_template, variables, default_channels, is_active ) VALUES ( 'assignment_reminder', 'Recordatorio de Tarea', 'Recordatorio cuando una asignación está por vencer', 'Recordatorio: {{assignment_title}} vence en {{hours_remaining}} horas', 'Hola {{student_name}}, ⏰ Recordatorio: Tu tarea está por vencer 📚 {{assignment_title}} ⏱️ Tiempo restante: {{hours_remaining}} horas 📅 Fecha límite: {{due_date}} {{completion_status}} ¡Accede a la plataforma para completarla!', 'Hola {{student_name}},
Tu tarea está por vencer:
⏱️ Tiempo restante: {{hours_remaining}} horas
📅 Fecha límite: {{due_date}}
Estado: {{completion_status}}
¡Felicidades {{student_name}}!
{{achievement_description}}
¡Sigue así y desbloquea más logros!
Hola {{student_name}},
Tu profesor {{teacher_name}} te ha enviado un mensaje:
"{{message_content}}"
Aula: {{classroom_name}}
Responder ', '["student_name", "teacher_name", "message_content", "classroom_name", "message_url"]'::jsonb, ARRAY['email', 'in_app'], true ); -- Template 6: Invitación a grupo/equipo INSERT INTO notifications.notification_templates ( template_key, name, description, subject_template, body_template, html_template, variables, default_channels, is_active ) VALUES ( 'team_invitation', 'Invitación a Equipo', 'Invitación para unirse a un equipo o grupo de estudio', 'Te invitaron a unirte a {{team_name}}', 'Hola {{student_name}}, {{inviter_name}} te ha invitado a unirte al equipo: 👥 {{team_name}} 📚 {{team_description}} Miembros actuales: {{member_count}} ¿Quieres unirte?', 'Hola {{student_name}},
{{inviter_name}} te ha invitado a unirte a un equipo:
{{team_description}}
Miembros actuales: {{member_count}}
Hola {{student_name}},
Tu profesor {{teacher_name}} ha calificado tu ejercicio:
⭐ {{score}}/100
Retroalimentación:
{{feedback_text}}
XP Ganados
+{{xp_earned}}
ML Coins
+{{ml_coins_earned}}
¡Increíble {{student_name}}!
Has mantenido tu racha de aprendizaje por:
{{streak_days}}
días consecutivos
💎 Bonus de racha:
+{{bonus_coins}} ML Coins
¡Sigue así para mantener tu racha!