workspace/projects/gamilit/docs/database/TRIGGERS-INVENTORY.md
rckrdmrd 11f43c0be9 docs: Correcciones P1 - Admin API, Triggers inventory, Master inventory
## Documentacion nueva:
- API-ADMIN-MODULE.md: 22 controllers, 150+ endpoints documentados
- TRIGGERS-INVENTORY.md: 111 triggers de BD documentados por schema

## Actualizaciones:
- MASTER_INVENTORY.yml v4.0.0: Metricas corregidas
  - Database: 15 schemas, 132 tablas, 111 triggers
  - Backend: 16 modulos, 103 services, 76 controllers
  - Frontend: 497 componentes, 102 hooks, 64 paginas
- API.md: Seccion Admin Portal API agregada
- LOG-IMPLEMENTACION.md: P1-001 a P1-003 completados

Progreso auditoria: P0 100%, P1 43%

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 12:34:33 -06:00

9.7 KiB

INVENTARIO DE TRIGGERS - BASE DE DATOS

Proyecto: GAMILIT - Plataforma Educativa Gamificada Fecha: 2025-12-23 Total Triggers: 111 Auditoria: Analisis DDL completo


RESUMEN POR SCHEMA

Schema Triggers Tipo Principal
auth_management 10 Inicializacion + Timestamps
gamification_system 12 Business Logic
progress_tracking 12 Progreso + Misiones
educational_content 8 Timestamps
social_features 6 Timestamps
system_configuration 5 Timestamps
audit_logging 1 Timestamps
content_management 4 Timestamps
communication 1 Timestamps
Otros (tablas especificas) ~52 Mixto
TOTAL ~111 -

1. AUTH_MANAGEMENT (10 triggers)

Triggers de Inicializacion

Trigger Tabla Evento Funcion
trg_set_default_tenant profiles BEFORE INSERT set_default_tenant()
trg_initialize_user_stats profiles AFTER INSERT initialize_user_stats()
trg_assign_default_classroom profiles AFTER INSERT assign_default_classroom()
trg_ensure_profile_name profiles BEFORE INSERT/UPDATE ensure_profile_name()

Triggers de Auditoria

Trigger Tabla Evento Funcion
trg_audit_profile_changes profiles AFTER UPDATE audit_profile_changes()

Triggers de Timestamps

Trigger Tabla
trg_profiles_updated_at profiles
trg_memberships_updated_at memberships
trg_tenants_updated_at tenants
trg_user_roles_updated_at user_roles

2. GAMIFICATION_SYSTEM (12 triggers)

Triggers de Logros y Recompensas

Trigger Tabla Evento Funcion
trg_achievement_unlocked user_achievements AFTER INSERT/UPDATE fn_on_achievement_unlocked()
trg_check_rank_promotion_on_xp_gain user_stats AFTER UPDATE OF total_xp trg_check_rank_promotion_fn()
trg_recalculate_level_on_xp_change user_stats BEFORE UPDATE OF total_xp recalculate_level_on_xp_change()

Triggers de Misiones

Trigger Tabla Evento Condicion
trg_update_missions_on_earn_xp user_stats AFTER UPDATE OLD.total_xp IS DISTINCT FROM NEW.total_xp
trg_update_missions_on_use_comodines comodin_usage_log AFTER INSERT -
trg_update_missions_on_daily_streak user_stats AFTER UPDATE OLD.current_streak IS DISTINCT FROM NEW.current_streak

Triggers de Timestamps

Trigger Tabla
trg_achievements_updated_at achievements
trg_comodines_inventory_updated_at comodines_inventory
missions_updated_at missions
notifications_updated_at notifications
trg_user_ranks_updated_at user_ranks
trg_user_stats_updated_at user_stats

3. PROGRESS_TRACKING (12 triggers)

Triggers de Estadisticas

Trigger Tabla Evento Funcion
trg_update_user_stats_on_exercise exercise_attempts AFTER INSERT update_user_stats_on_exercise_complete()
trg_update_user_stats_on_submission exercise_submissions AFTER INSERT update_user_stats_on_submission_graded()

Triggers de Progreso de Modulos

Trigger Tabla Evento Funcion
trg_update_module_progress_on_exercise exercise_attempts AFTER INSERT update_module_progress_on_exercise_complete()
trg_update_module_progress_on_submission exercise_submissions AFTER INSERT update_module_progress_on_submission_graded()

Triggers de Misiones

Trigger Tabla Evento
trg_update_missions_on_exercise exercise_attempts AFTER INSERT
trg_update_missions_on_submission exercise_submissions AFTER INSERT
trg_update_missions_on_streak exercise_submissions AFTER INSERT
trg_update_missions_on_perfect_scores exercise_attempts AFTER INSERT
trg_update_missions_on_complete_modules module_progress AFTER UPDATE
trg_update_missions_on_explore_modules module_progress AFTER INSERT

Triggers de Timestamps

Trigger Tabla
exercise_submissions_updated_at exercise_submissions
trg_module_progress_updated_at module_progress

4. EDUCATIONAL_CONTENT (8 triggers)

Trigger Tabla
trg_exercises_updated_at exercises
trg_modules_updated_at modules
trg_assessment_rubrics_updated_at assessment_rubrics
trg_media_resources_updated_at media_resources
update_taxonomies_updated_at taxonomies
update_assignments_updated_at assignments
update_assignment_submissions_updated_at assignment_submissions
trg_exercise_validation_config_updated_at exercise_validation_config

5. SOCIAL_FEATURES (6 triggers)

Trigger Tabla Tipo
trg_update_classroom_count classroom_members Business Logic
trg_classroom_members_updated_at classroom_members Timestamp
trg_classrooms_updated_at classrooms Timestamp
trg_teams_updated_at teams Timestamp
trg_schools_updated_at schools Timestamp
trg_teacher_reports_updated_at teacher_reports Timestamp

6. SYSTEM_CONFIGURATION (5 triggers)

Trigger Tabla
trg_feature_flags_updated_at feature_flags
trg_system_settings_updated_at system_settings
trg_notification_settings_updated_at notification_settings
update_gamification_parameters_timestamp gamification_parameters
update_api_configuration_updated_at api_configuration

7. OTROS SCHEMAS

Audit Logging

Trigger Tabla
trg_system_alerts_updated_at system_alerts

Content Management

Trigger Tabla
trg_content_templates_updated_at content_templates
trg_marie_curie_content_updated_at marie_curie_content
trg_media_files_updated_at media_files
update_media_metadata_updated_at media_metadata

Communication

Trigger Tabla
trigger_update_messages_timestamp messages

PATRONES DE TRIGGERS

1. Timestamp Pattern (~60%)

CREATE TRIGGER trg_<tabla>_updated_at
BEFORE UPDATE ON <schema>.<tabla>
FOR EACH ROW
EXECUTE FUNCTION gamilit.update_updated_at_column();

2. Business Logic Pattern

CREATE TRIGGER trg_<accion>
AFTER INSERT ON <tabla>
FOR EACH ROW
WHEN (condicion)
EXECUTE FUNCTION gamilit.<funcion>();

3. Initialization Pattern

CREATE TRIGGER trg_initialize_<recurso>
AFTER INSERT ON <tabla>
FOR EACH ROW
EXECUTE FUNCTION gamilit.initialize_<recurso>();

TRIGGERS CRITICOS

Gamificacion

Trigger Importancia Efecto
trg_achievement_unlocked CRITICO Otorga XP + ML Coins
trg_check_rank_promotion_on_xp_gain CRITICO Promociona rangos Maya
trg_recalculate_level_on_xp_change CRITICO Recalcula nivel

Inicializacion de Usuario

Trigger Orden Efecto
trg_set_default_tenant 1 Asigna tenant
trg_ensure_profile_name 2 Extrae nombre de email
trg_initialize_user_stats 3 Crea registros gamificacion
trg_assign_default_classroom 4 Asigna aula default

Progreso Academico

Trigger Importancia Efecto
trg_update_user_stats_on_exercise ALTO Actualiza estadisticas
trg_update_module_progress_on_exercise ALTO Actualiza % modulo

UBICACION DE ARCHIVOS

apps/database/ddl/schemas/
├── auth_management/triggers/
│   ├── 01-trg_set_default_tenant.sql
│   ├── 02-trg_memberships_updated_at.sql
│   ├── 03-trg_audit_profile_changes.sql
│   ├── 03b-trg_ensure_profile_name.sql
│   ├── 04-trg_initialize_user_stats.sql
│   ├── 05-trg_profiles_updated_at.sql
│   ├── 05-trg_assign_default_classroom.sql
│   ├── 06-trg_tenants_updated_at.sql
│   └── 07-trg_user_roles_updated_at.sql
│
├── gamification_system/triggers/
│   ├── 01-trg_achievement_unlocked.sql
│   ├── 15-trg_achievements_updated_at.sql
│   ├── 16-trg_comodines_inventory_updated_at.sql
│   ├── 17-missions_updated_at.sql
│   ├── 18-notifications_updated_at.sql
│   ├── 19-trg_user_ranks_updated_at.sql
│   ├── 20-trg_user_stats_updated_at.sql
│   ├── 21-trg_recalculate_level_on_xp_change.sql
│   ├── 27-trg_update_missions_on_earn_xp.sql
│   ├── 28-trg_update_missions_on_use_comodines.sql
│   ├── 29-trg_update_missions_on_daily_streak.sql
│   └── trg_check_rank_promotion_on_xp_gain.sql
│
├── progress_tracking/triggers/
│   ├── 21-trg_update_user_stats_on_exercise.sql
│   ├── 22-exercise_submissions_updated_at.sql
│   ├── 22-trg_update_module_progress_on_exercise.sql
│   ├── 23-trg_module_progress_updated_at.sql
│   ├── 24-trg_update_missions_on_exercise.sql
│   ├── 25-trg_update_missions_on_submission.sql
│   ├── 26-trg_update_missions_on_streak.sql
│   ├── 27-trg_update_module_progress_on_submission.sql
│   ├── 28-trg_update_missions_on_perfect_scores.sql
│   ├── 29-trg_update_missions_on_complete_modules.sql
│   ├── 30-trg_update_missions_on_explore_modules.sql
│   └── 31-trg_update_user_stats_on_submission.sql
│
├── educational_content/triggers/
├── social_features/triggers/
├── system_configuration/triggers/
├── audit_logging/triggers/
├── content_management/triggers/
└── communication/triggers/

Generado por: Requirements-Analyst Fecha: 2025-12-23 Version: 1.0