Some checks are pending
CI Pipeline / changes (push) Waiting to run
CI Pipeline / core (push) Blocked by required conditions
CI Pipeline / trading-backend (push) Blocked by required conditions
CI Pipeline / trading-data-service (push) Blocked by required conditions
CI Pipeline / trading-frontend (push) Blocked by required conditions
CI Pipeline / erp-core (push) Blocked by required conditions
CI Pipeline / erp-mecanicas (push) Blocked by required conditions
CI Pipeline / gamilit-backend (push) Blocked by required conditions
CI Pipeline / gamilit-frontend (push) Blocked by required conditions
Gamilit: - Backend: Teacher services, assignments, gamification, exercise submissions - Frontend: Admin/Teacher/Student portals, module 4-5 mechanics, monitoring - Database: DDL functions, seeds for dev/prod, auth/gamification schemas - Docs: Architecture, features, guides cleanup and reorganization Core/Orchestration: - New workspace directives index - Documentation directive Trading-platform: - Database seeds and inventory updates - Tech leader validation report 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
912 lines
38 KiB
YAML
912 lines
38 KiB
YAML
# DATABASE INVENTORY - GAMILIT
|
|
# Inventario completo de objetos de base de datos
|
|
# Generado: 2025-11-11
|
|
# Fuente: Validación DB-092 (Ciclo 1-4)
|
|
|
|
metadata:
|
|
version: "3.6.0"
|
|
generated_date: "2025-11-11"
|
|
last_updated: "2025-12-18"
|
|
database_script: "create-database.sh"
|
|
total_ddl_files: 395
|
|
total_seed_files: 99
|
|
total_schemas: 16
|
|
script_phases: 17
|
|
seed_breakdown:
|
|
dev_files: 50
|
|
prod_files: 49
|
|
script_files: 6
|
|
database_counts:
|
|
schemas: 16
|
|
tables: 123
|
|
views: 11
|
|
materialized_views: 11
|
|
enums: 42
|
|
functions: 214
|
|
triggers: 92
|
|
indexes: 21
|
|
policies: 185
|
|
foreign_keys: 208
|
|
notes: |
|
|
Historial de cambios disponible en:
|
|
orchestration/reportes/HISTORIAL-CAMBIOS-DATABASE-2025-12.md
|
|
|
|
# ============================================================================
|
|
# SCHEMAS
|
|
# ============================================================================
|
|
schemas:
|
|
- name: "admin_dashboard"
|
|
description: "Dashboard administrativo - vistas materializadas, reportes, operaciones bulk"
|
|
phase: 8 # Ejecutado después de otras dependencias
|
|
ddl_files: 11
|
|
tables: 3 # bulk_operations, admin_reports, materialized_views
|
|
functions: 1 # update_bulk_operation_progress
|
|
triggers: 0
|
|
indexes: 0
|
|
views: 7 # recent_activity, assignment_submission_stats, classroom_overview, moderation_queue, organization_stats_summary, recent_admin_actions, user_stats_summary
|
|
enums: 0
|
|
rls_policies: 0
|
|
notes: "2025-11-28: Schema estaba implementado pero no documentado. Agregado admin_reports para persistencia de reportes (antes en memoria)."
|
|
|
|
- name: "auth"
|
|
description: "Autenticación base"
|
|
phase: 3
|
|
ddl_files: 8
|
|
tables: 2
|
|
functions: 0
|
|
triggers: 0
|
|
indexes: 0
|
|
views: 0
|
|
enums: 0
|
|
rls_policies: 0
|
|
|
|
- name: "auth_management"
|
|
description: "Gestión de usuarios y autenticación"
|
|
phase: 5
|
|
ddl_files: 20
|
|
tables: 3
|
|
functions: 5
|
|
triggers: 4
|
|
indexes: 6
|
|
views: 0
|
|
enums: 2
|
|
rls_policies: 3
|
|
fk_constraints_diferidos: 1
|
|
key_triggers:
|
|
- name: "trg_ensure_profile_name"
|
|
file: "03b-trg_ensure_profile_name.sql"
|
|
description: "Asegura first_name, last_name y full_name en profiles"
|
|
|
|
- name: "educational_content"
|
|
description: "Contenido educativo (módulos, ejercicios, assignments)"
|
|
phase: 6
|
|
ddl_files: 49 # 2025-11-29: +1 (09-media_attachments.sql)
|
|
tables: 20 # ✅ AUDITADO 2025-11-29: 21 archivos SQL - 1 ALTER (24-alter_assignment_students.sql es ALTER no CREATE TABLE)
|
|
functions: 32 # ✅ 2025-11-29: +1 (validate_module4_module5_answer). 2025-11-28: +2 (validate_mapa_conceptual, validate_emparejamiento). DB-124 H-004: 28 en /functions/ (25 validadores + 3 RPC), 4 en /tables/ (DB-122 helpers)
|
|
triggers: 8 # DB-122: +2 (classroom_modules, teacher_content)
|
|
indexes: 47 # 2025-11-29: +4 (media_attachments: submission, exercise, user, type)
|
|
views: 1 # DB-122: +1 (published_teacher_content)
|
|
enums: 4
|
|
rls_policies: 5
|
|
exercises_total: 23 # Total según DocumentoDeDiseño v6.4: 7+5+5+5+3 (M1-M5) = 25 tipos únicos, 23 seeds
|
|
exercises_xp_total: 2500 # DB-119: Homologado según doc v6.2
|
|
exercises_ml_total: 500 # DB-119: Homologado según doc v6.2
|
|
exercises_content_alignment: 100% # DB-121: Score de alineación con doc v6.2 (23/23 ejercicios)
|
|
exercises_validation_status: "EXCELENTE - Alineación 100%"
|
|
exercises_validation_date: "2025-11-16"
|
|
validators_by_module:
|
|
module_1: 7 # word_search, crucigrama, timeline, fill_in_blank, true_false, mapa_conceptual, emparejamiento [MVP ✅ 2025-11-28]
|
|
module_2: 6 # detective_textual, detective_connections, prediction_scenarios, prediccion_narrativa, puzzle_contexto, construccion_hipotesis, rueda_inferencias [MVP ✅]
|
|
module_3: 5 # tribunal_opiniones, debate_digital, analisis_fuentes, podcast_argumentativo, matriz_perspectivas [MVP ✅]
|
|
module_4: 5 # validate_module4_module5_answer (estructura básica, no contenido) ✅ 2025-11-29
|
|
module_5: 3 # validate_module4_module5_answer (estructura básica, no contenido) ✅ 2025-11-29
|
|
generic: 4 # validate_answer, validate_and_audit, validate_exercise_structure, validate_cause_effect_matching
|
|
validation_enhancements:
|
|
- date: "2025-11-24"
|
|
gap_id: "GAP-EJERCICIO-1.3-001"
|
|
function: "validate_fill_in_blank"
|
|
change: "Agregado soporte para múltiples alternativas válidas por espacio en blanco"
|
|
parameters_added:
|
|
- "p_content JSONB DEFAULT NULL"
|
|
behavior: "Lee alternatives desde content->blanks[].alternatives y valida contra correctAnswer O cualquier alternative"
|
|
backward_compatible: true
|
|
tests_passed: "7/7 (100%)"
|
|
affected_exercises:
|
|
- exercise: "1.3 - Completar Espacios en Blanco (Marie Curie)"
|
|
valid_combinations: 6
|
|
status: "✅ Corregido - Todas las combinaciones válidas aceptadas"
|
|
notes: "2025-11-29: validate_module4_module5_answer agregada (validación de estructura JSONB para M4-M5, NO contenido). media_attachments table added for multimedia exercises (modules 4-5). Seeds for modules 4-5 moved from _backlog to production. Total: 32 funciones. 2025-11-28: +2 validadores (validate_mapa_conceptual, validate_emparejamiento) para completar M1. BUG-002 a BUG-004 corregidos. 2025-11-24: validate_fill_in_blank actualizada con soporte de alternativas (GAP-EJERCICIO-1.3-001). validate_answer modificada para pasar p_content. Tests 100% exitosos. 2025-11-23: Módulos 1-3 validados para MVP (Architecture-Analyst). DB-124 H-004: 28 funciones (era 11). DB-122: +3 tablas (classroom_modules, teacher_content, assignment_students mejorado). DB-121: Contenido 100% alineado con doc v6.2 (7 P0 corregidos, 8 P1 actualizados). DB-119: Homologación XP/ML (2,500 XP, 500 ML)"
|
|
|
|
- name: "gamification_system"
|
|
description: "Sistema de gamificación (logros, rangos, economía, tienda virtual)"
|
|
phase: 7
|
|
ddl_files: 95 # 2025-11-29: +3 (17-shop_categories, 18-shop_items, 19-user_purchases)
|
|
tables: 21 # 2025-11-29: +3 (shop_categories, shop_items, user_purchases)
|
|
functions: 25
|
|
triggers: 14 # 2025-11-29: +2 (shop_categories, shop_items triggers)
|
|
indexes: 37 # 2025-11-29: +14 (2 shop_categories + 7 shop_items + 7 user_purchases incluyendo unique index)
|
|
views: 2
|
|
enums: 6 # 2025-11-29: +1 (shop_item_category)
|
|
rls_policies: 6
|
|
notes: "2025-11-29: Sistema de tienda virtual agregado (3 tablas, 1 ENUM, 20 items, 10 achievements). DB-099: ml_coins_transactions.tenant_id added"
|
|
|
|
- name: "progress_tracking"
|
|
description: "Seguimiento de progreso de estudiantes"
|
|
phase: 8
|
|
ddl_files: 42 # 2025-11-29: +3 (student_intervention_alerts table, generate_student_alerts function, manual_reviews table)
|
|
tables: 17 # ✅ AUDITADO 2025-11-29: 17 tablas reales en /tables/
|
|
functions: 11 # 2025-11-29: +1 (generate_student_alerts)
|
|
triggers: 22 # ✅ AUDITADO 2025-11-29: 12 en /triggers/ + 10 en /tables/ = 22 triggers totales
|
|
indexes: 20 # 2025-11-29: +8 (5 student_intervention_alerts + 3 manual_reviews)
|
|
views: 2 # DB-122: +1 (classroom_students_metrics)
|
|
enums: 5 # 2025-11-29: +3 (alert_type, alert_severity, alert_status)
|
|
rls_policies: 6 # 2025-11-29: +2 (teacher_view_classroom_alerts, teacher_manage_classroom_alerts)
|
|
notes: "2025-11-29 AUDITORÍA: Corregidos conteos (tablas 18→17, triggers 6/7→22). student_intervention_alerts table added for automatic student risk detection. manual_reviews table added for teacher evaluation of creative exercises (modules 4-5)"
|
|
|
|
- name: "social_features"
|
|
description: "Características sociales (escuelas, aulas, equipos) - SIMPLIFICADO 2025-12-15"
|
|
phase: 9
|
|
ddl_files: 31 # 2025-11-26: +3 (teacher_reports table, trigger, rls-policies)
|
|
tables: 13 # 2025-11-26: +1 (teacher_reports)
|
|
functions: 6
|
|
triggers: 4 # 2025-11-26: +1 (trg_teacher_reports_updated_at)
|
|
indexes: 13 # 2025-11-26: +5 (teacher_id, tenant_id, generated_at, classroom_id, report_type)
|
|
views: 1
|
|
enums: 1
|
|
rls_policies: 5 # 2025-11-26: +2 (teacher_reports_teacher_policy, teacher_reports_admin_policy)
|
|
seed_entities_2025_12_15:
|
|
schools: 1 # Solo SYSTEM-UNASSIGNED (escuelas demo removidas)
|
|
classrooms: 1 # Solo DEFAULT (aulas demo removidas)
|
|
classroom_members: dynamic # Todos los estudiantes → DEFAULT
|
|
notes: |
|
|
2025-12-15: SIMPLIFICACIÓN DE ESTRUCTURA
|
|
- Seeds reducidos a solo entidades DEFAULT del sistema
|
|
- Escuelas demo removidas (Marie Curie, IEI)
|
|
- Aulas demo removidas (5to A, 5to B, 6to A, etc.)
|
|
- Trigger trg_assign_default_classroom asigna automáticamente estudiantes nuevos
|
|
- Admin crea entidades adicionales desde UI
|
|
|
|
2025-11-26: teacher_reports table added for storing teacher-generated report metadata (Portal Teacher fix)
|
|
|
|
- name: "notifications"
|
|
description: "Sistema de notificaciones multi-canal (in-app, email, push)"
|
|
phase: 9.7
|
|
ddl_files: 10 # DB-124: 1 schema + 6 tables + 3 functions
|
|
tables: 6
|
|
tables_list:
|
|
- 01-notifications.sql
|
|
- 02-notification_preferences.sql
|
|
- 03-notification_logs.sql
|
|
- 04-notification_templates.sql
|
|
- 05-notification_queue.sql
|
|
- 06-user_devices.sql
|
|
functions: 3
|
|
functions_list:
|
|
- 01-send_notification.sql
|
|
- 02-get_user_preferences.sql
|
|
- 03-queue_batch_notifications.sql
|
|
triggers: 0
|
|
indexes: 0 # TODO: Verificar en DB-124 análisis profundo
|
|
views: 0
|
|
enums: 0
|
|
rls_policies: 0 # TODO: Implementar RLS cuando se integre con auth
|
|
related_epic: "EXT-003"
|
|
implementation_date: "2025-11-11"
|
|
status: "implemented_db"
|
|
notes: "DB-124: Schema no documentado encontrado en auditoría. Creado 2025-11-11 como parte de EXT-003 (Sistema de Notificaciones Multi-Canal). Incluye 6 tablas y 3 funciones. Soporte para in-app, email y push notifications. Sistema de cola para envío asíncrono. Documentación en docs/03-fase-extensiones/EXT-003-notificaciones/"
|
|
|
|
- name: "content_management"
|
|
description: "Gestión de contenido Marie Curie"
|
|
phase: 10
|
|
ddl_files: 18
|
|
tables: 8
|
|
tables_list:
|
|
- 01-content_templates.sql
|
|
- 02-marie_curie_content.sql
|
|
- 03-media_files.sql
|
|
- 04-content_versions.sql
|
|
- 05-flagged_content.sql
|
|
- content_authors.sql
|
|
- content_categories.sql
|
|
- media_metadata.sql
|
|
functions: 0 # No tiene directorio functions (correcto según diseño)
|
|
triggers: 3
|
|
indexes: 2
|
|
views: 0
|
|
enums: 4
|
|
enums_list:
|
|
- content_status # Preexistente (2025-11-09)
|
|
- content_type # Preexistente (2025-11-09)
|
|
- media_type # Creado FASE 1 (2025-11-11)
|
|
- processing_status # Creado FASE 1 (2025-11-11)
|
|
rls_policies: 1
|
|
notes: "DB-111: Agregados 2 ENUMs (media_type, processing_status) en FASE 1. Validación DB-111 FASE 1.7: Corregido conteo tablas 6→8, funciones 3→0, triggers 2→3, indexes 4→2, rls_policies 2→1 (valores reales validados)"
|
|
|
|
- name: "communication"
|
|
description: "Sistema de mensajería y comunicación maestro-estudiante"
|
|
phase: 10.5
|
|
ddl_files: 2 # DB-122: 00-schema.sql, tables/01-messages.sql
|
|
tables: 1 # DB-122: messages
|
|
functions: 2 # DB-122: get_unread_count, mark_conversation_read
|
|
triggers: 1 # DB-122: messages trigger
|
|
indexes: 11 # DB-122: 11 indexes incl. 2 GIN
|
|
views: 1 # DB-122: recent_classroom_messages
|
|
enums: 0
|
|
rls_policies: 0 # Deshabilitadas por falta de auth.uid()
|
|
notes: "DB-122: Nuevo schema para comunicación formal maestro-estudiante. Incluye threading, attachments JSONB, reactions, sistema de moderación"
|
|
|
|
- name: "audit_logging"
|
|
description: "Auditoría y logging del sistema"
|
|
phase: 11
|
|
ddl_files: 12
|
|
tables: 3
|
|
functions: 2
|
|
triggers: 1
|
|
indexes: 2
|
|
views: 0
|
|
enums: 1
|
|
rls_policies: 1
|
|
|
|
- name: "system_configuration"
|
|
description: "Configuración del sistema"
|
|
phase: 12
|
|
ddl_files: 20 # DB-122: +2 (feature_flags, gamification_parameters)
|
|
tables: 7 # DB-122: +2 (feature_flags, gamification_parameters)
|
|
functions: 6 # DB-122: +3 (is_feature_enabled, get_gamification_param, set_classroom_gamification_override)
|
|
triggers: 3 # DB-122: +2 (feature_flags, gamification_parameters)
|
|
indexes: 13 # DB-122: +10 (5 feature_flags + 5 gamification_parameters)
|
|
views: 1
|
|
enums: 0
|
|
rls_policies: 0
|
|
seed_files_prod: 2 # DB-122: feature_flags_seeds (26 rows), gamification_parameters_seeds (37 rows)
|
|
seed_rows_prod: 63 # DB-122: 26 feature flags + 37 gamification parameters
|
|
notes: "DB-122: Sistema de feature flags y parámetros de gamificación configurables implementado"
|
|
|
|
- name: "lti_integration"
|
|
description: "Learning Tools Interoperability 1.3"
|
|
phase: 14
|
|
ddl_files: 22
|
|
tables: 8
|
|
functions: 4
|
|
triggers: 2
|
|
indexes: 6
|
|
views: 1
|
|
enums: 1
|
|
rls_policies: 0
|
|
|
|
# ============================================================================
|
|
# OBJETOS GLOBALES (Fase 1: Prerequisites)
|
|
# ============================================================================
|
|
prerequisites:
|
|
file: "ddl/00-prerequisites.sql"
|
|
phase: 1
|
|
description: "Schemas base y ENUMs globales"
|
|
schemas_created: 14 # ✅ AUDITADO 2025-11-28 (incluye gamilit + admin_dashboard)
|
|
enums_created: 0 # ENUMs ahora en schemas específicos
|
|
note: "14 schemas implementados: admin_dashboard, audit_logging, auth, auth_management, communication, content_management, educational_content, gamification_system, gamilit, lti_integration, notifications, progress_tracking, social_features, system_configuration. Excluye public/storage (defaults del sistema)."
|
|
|
|
# ============================================================================
|
|
# RESUMEN DE OBJETOS
|
|
# ============================================================================
|
|
summary:
|
|
total_objects: 646 # ✅ AUDITADO 2025-11-28 (conteo real post-limpieza)
|
|
breakdown:
|
|
tables: 126 # ✅ AUDITADO 2025-11-28 (conteo real DDL)
|
|
functions: 106 # ✅ AUDITADO 2025-11-28 (conteo real DDL)
|
|
triggers: 91 # ✅ AUDITADO 2025-11-28 (88 únicos según auditoría DB-124)
|
|
indexes: 21 # ✅ AUDITADO 2025-11-28 (post-limpieza: 46 duplicados eliminados)
|
|
views: 15 # ✅ 2025-11-28 (incluye admin_dashboard views)
|
|
materialized_views: 11 # ✅ DB-124: Validado por parsing
|
|
enums: 34
|
|
rls_policies: 243 # ✅ 2025-11-26: +2 (teacher_reports policies)
|
|
fk_constraints: 208 # ✅ 2025-11-26: +3 (teacher_reports FKs)
|
|
changes:
|
|
- "AUDITORÍA DB-124 (2025-11-28): INVENTARIO ACTUALIZADO CON CONTEOS REALES DEL DDL"
|
|
- "AUDITORÍA DB-124 (2025-11-28): Schemas: 14 implementados (16 directorios - excluye public/storage del sistema)"
|
|
- "AUDITORÍA DB-124 (2025-11-28): Tablas: 126 (conteo real archivos DDL en /tables/)"
|
|
- "AUDITORÍA DB-124 (2025-11-28): Funciones: 106 (conteo real archivos DDL en /functions/)"
|
|
- "AUDITORÍA DB-124 (2025-11-28): Triggers: 91 (88 únicos + 3 helpers, validados)"
|
|
- "AUDITORÍA DB-124 (2025-11-28): Índices: 21 archivos DDL (46 índices duplicados eliminados en limpieza)"
|
|
- "AUDITORÍA DB-124 (2025-11-28): IMPORTANTE - 46 índices duplicados fueron identificados y eliminados"
|
|
- "AUDITORÍA DB-124 (2025-11-28): Conteos anteriores estaban inflados por duplicados y archivos obsoletos"
|
|
- "AUDITORÍA DB-124 (2025-11-28): Total objetos ajustado: 772 → 646 (post-limpieza)"
|
|
- "DB-124: AUDITORÍA FASE 1 - Ciclos 1-3 completados (31 hallazgos, 3 resueltos)"
|
|
- "DB-124 H-022: Soft-delete implementado en profiles/tenants (prevención pérdida datos CASCADE)"
|
|
- "TEACHER-PORTAL-FIX (2025-11-26): Tabla social_features.teacher_reports para persistir reportes generados por profesores"
|
|
- "DB-122: FASE P0 - 3 tablas críticas (classroom_modules, feature_flags, gamification_parameters) + assignment_students mejorado (4→24 cols)"
|
|
- "DB-122: FASE P1 - 2 tablas importantes (messages, teacher_content) + nuevo schema communication"
|
|
- "DB-122: Portales Admin/Maestro alcanzaron 95% funcionalidad (de 66.5%)"
|
|
|
|
# ============================================================================
|
|
# SEEDS DE PRODUCCIÓN (Fase 16)
|
|
# ============================================================================
|
|
seeds:
|
|
total_files: 31
|
|
referenced_in_script: 19
|
|
not_referenced: 12
|
|
|
|
loaded_seeds:
|
|
system_configuration:
|
|
- file: "01-system_settings.sql"
|
|
description: "Configuración global del sistema (7 settings)"
|
|
records: 7
|
|
|
|
- file: "01-feature_flags_seeds.sql" # DB-122: Reemplaza 02-feature_flags.sql
|
|
description: "Feature flags con overrides tenant/classroom (26 flags)"
|
|
records: 26
|
|
categories: "gamification (6), educational (4), social (4), admin (4), integration (3), content (2), system (3)"
|
|
version: "2.0 - DB-122"
|
|
|
|
- file: "02-gamification_parameters_seeds.sql" # DB-122: Nuevo
|
|
description: "Parámetros configurables de gamificación (37 params)"
|
|
records: 37
|
|
categories: "points (5), rewards (8), levels (3), ranks (7), penalties (3), multipliers (7), engagement (3), classroom (2)"
|
|
version: "1.0 - DB-122"
|
|
|
|
- file: "03-notification_settings_global.sql"
|
|
description: "Configuración global de notificaciones"
|
|
records: 5
|
|
|
|
auth_management:
|
|
- file: "01-tenants.sql"
|
|
description: "Tenant principal de GAMILIT"
|
|
records: 1
|
|
version: "2.0"
|
|
|
|
- file: "02-auth_providers.sql"
|
|
description: "Providers de autenticación (Email, Google, Facebook)"
|
|
records: 3
|
|
version: "2.0"
|
|
|
|
- file: "04-profiles-complete.sql"
|
|
description: "Perfiles de usuarios de prueba (8 usuarios)"
|
|
records: 8
|
|
version: "2.0"
|
|
|
|
auth:
|
|
- file: "01-demo-users.sql"
|
|
description: "Usuarios de testing y demo (8 usuarios)"
|
|
records: 8
|
|
users:
|
|
- "2 Super Admin"
|
|
- "2 Teachers"
|
|
- "4 Students"
|
|
|
|
educational_content:
|
|
- file: "01-modules.sql"
|
|
description: "5 módulos educativos"
|
|
records: 5
|
|
version: "2.1"
|
|
note: "Módulos 4-5 en status 'backlog', is_published=false"
|
|
|
|
- file: "03-exercises-complete.sql"
|
|
description: "85 ejercicios con configuración completa"
|
|
records: 85
|
|
modules:
|
|
- "Módulo 1: 25 ejercicios"
|
|
- "Módulo 2: 20 ejercicios"
|
|
- "Módulo 3: 15 ejercicios"
|
|
- "Módulo 4: 15 ejercicios"
|
|
- "Módulo 5: 10 ejercicios"
|
|
|
|
- file: "05-exercises-module4.sql"
|
|
description: "5 ejercicios oficiales módulo 4 - Lectura Digital y Multimodal"
|
|
records: 5
|
|
module: "MOD-04-DIGITAL"
|
|
reference: "DocumentoDeDiseño_Mecanicas_GAMILIT_v6_1.md líneas 782-965"
|
|
exercises:
|
|
- order: 1
|
|
type: "verificador_fake_news"
|
|
title: "Verificador de Fake News"
|
|
description: "Distingue Hechos de Ficción - análisis de afirmaciones"
|
|
- order: 2
|
|
type: "infografia_interactiva"
|
|
title: "Infografía Interactiva: Descubrimientos de Marie Curie"
|
|
description: "Extrae Información Visual - exploración de secciones"
|
|
- order: 3
|
|
type: "quiz_tiktok"
|
|
title: "Quiz TikTok: Datos Rápidos de Marie Curie"
|
|
description: "Responde en 10 Segundos - preguntas rápidas"
|
|
- order: 4
|
|
type: "navegacion_hipertextual"
|
|
title: "Navegación Hipertextual: Explora la Red de Conocimiento"
|
|
description: "Sigue los Enlaces Relevantes - navegación entre nodos"
|
|
content_structure:
|
|
nodes: "array de HypertextNode (id, title, content, links[])"
|
|
startNodeId: "ID del nodo inicial"
|
|
targetNodeId: "ID del nodo objetivo"
|
|
optimalPath: "array con ruta óptima"
|
|
- order: 5
|
|
type: "analisis_memes"
|
|
title: "Análisis de Memes: Comprensión Visual-Textual"
|
|
description: "Decodifica el Mensaje del Meme - análisis visual-textual"
|
|
status: "production_ready"
|
|
|
|
- file: "06-exercises-module5.sql" # 2025-11-29: Movido desde _backlog
|
|
description: "3 ejercicios módulo 5 (Producción Creativa)"
|
|
records: 3
|
|
module: "MOD-05-PRODUCCION"
|
|
exercises:
|
|
- "5.1 Diario Multimedia"
|
|
- "5.2 Cómic Digital"
|
|
- "5.3 Video-Carta"
|
|
status: "production_ready"
|
|
moved_from: "_backlog"
|
|
moved_date: "2025-11-29"
|
|
note: "Requieren manual_reviews y media_attachments tables"
|
|
|
|
- file: "06-exercise-answers.sql"
|
|
description: "Respuestas correctas para ejercicios"
|
|
records: 85
|
|
|
|
gamification_system:
|
|
- file: "01-achievement_categories.sql"
|
|
description: "Categorías de logros"
|
|
records: 6
|
|
|
|
- file: "02-leaderboard_metadata.sql"
|
|
description: "Metadata de leaderboards"
|
|
records: 3
|
|
|
|
- file: "03-maya_ranks.sql"
|
|
description: "7 rangos Maya"
|
|
records: 7
|
|
ranks:
|
|
- "Aj K'uhun (Estudiante)"
|
|
- "Ah Tz'ib (Escriba)"
|
|
- "Ah Nacom (Guerrero)"
|
|
- "Halach Uinic (Señor Verdadero)"
|
|
- "K'uhul Ajaw (Señor Divino)"
|
|
- "Bacab (Guardián)"
|
|
- "Itzamna (Dios Supremo)"
|
|
|
|
- file: "04-achievements.sql"
|
|
description: "30 logros demo (20 originales + 10 nuevos shop/engagement)"
|
|
records: 30
|
|
version: "1.1 - 2025-11-29"
|
|
|
|
- file: "12-shop_categories.sql"
|
|
description: "5 categorías de tienda virtual"
|
|
records: 5
|
|
version: "1.0 - 2025-11-29"
|
|
|
|
- file: "13-shop_items.sql"
|
|
description: "20 items variados para la tienda (cosmetics, profile, guild, social, consumable)"
|
|
records: 20
|
|
version: "1.0 - 2025-11-29"
|
|
|
|
- file: "05-user_stats.sql"
|
|
description: "Estadísticas de usuarios"
|
|
records: 8
|
|
|
|
- file: "06-user_ranks.sql"
|
|
description: "Rangos de usuarios"
|
|
records: 8
|
|
|
|
- file: "07-ml_coins_transactions.sql"
|
|
description: "Transacciones de ML Coins"
|
|
records: 16
|
|
|
|
- file: "08-user_achievements.sql"
|
|
description: "Logros de usuarios"
|
|
records: 24
|
|
|
|
- file: "09-comodines_inventory.sql"
|
|
description: "Inventario de comodines"
|
|
records: 12
|
|
|
|
not_loaded_seeds:
|
|
critical: # DEBEN agregarse al script
|
|
- file: "social_features/01-schools.sql"
|
|
reason: "Necesario para profiles.school_id FK"
|
|
priority: "P0"
|
|
|
|
- file: "social_features/02-classrooms.sql"
|
|
reason: "Necesario para estructura escolar"
|
|
priority: "P0"
|
|
|
|
- file: "social_features/03-classroom-members.sql"
|
|
reason: "Necesario para asignación de estudiantes"
|
|
priority: "P0"
|
|
|
|
- file: "progress_tracking/01-module_progress.sql"
|
|
reason: "Necesario para tracking de progreso"
|
|
priority: "P0"
|
|
|
|
duplicates: # Deprecar (están duplicados)
|
|
- file: "auth_management/03-profiles.sql"
|
|
reason: "Duplicado con 04-profiles-complete.sql"
|
|
action: "Mover a _deprecated/"
|
|
|
|
- file: "educational_content/02-exercises-demo.sql"
|
|
reason: "Duplicado con 03-exercises-complete.sql"
|
|
action: "Mover a _deprecated/"
|
|
|
|
optional: # Evaluar según requerimientos
|
|
- file: "audit_logging/01-default-config.sql"
|
|
description: "Configuración de auditoría"
|
|
|
|
- file: "content_management/01-default-templates.sql"
|
|
description: "Templates de Marie Curie"
|
|
|
|
- file: "educational_content/07-assessment-rubrics.sql"
|
|
description: "Rúbricas de evaluación"
|
|
|
|
- file: "educational_content/08-difficulty_criteria.sql"
|
|
description: "Criterios de dificultad adaptativa"
|
|
|
|
- file: "lti_integration/01-lti_consumers.sql"
|
|
description: "Consumidores LTI 1.3"
|
|
|
|
- file: "system_configuration/04-rate_limits.sql"
|
|
description: "Límites de tasa API"
|
|
|
|
# ============================================================================
|
|
# DOCUMENTACIÓN
|
|
# ============================================================================
|
|
documentation:
|
|
schema_maps:
|
|
total: 12 # ✅ CORREGIDO 2025-11-23 (solo schemas reales)
|
|
coverage: "100%"
|
|
files:
|
|
- "audit_logging/_MAP.md"
|
|
- "auth/_MAP.md"
|
|
- "auth_management/_MAP.md"
|
|
- "communication/_MAP.md"
|
|
- "content_management/_MAP.md"
|
|
- "educational_content/_MAP.md"
|
|
- "gamification_system/_MAP.md"
|
|
- "lti_integration/_MAP.md"
|
|
- "notifications/_MAP.md"
|
|
- "progress_tracking/_MAP.md"
|
|
- "social_features/_MAP.md"
|
|
- "system_configuration/_MAP.md"
|
|
note: "ACTUALIZADO 2025-11-23: Eliminados _MAP.md de schemas no implementados (admin_dashboard, gamilit, public, storage)"
|
|
|
|
# ============================================================================
|
|
# VALIDACIONES
|
|
# ============================================================================
|
|
validations:
|
|
clean_load_policy:
|
|
status: "✅ 100% COMPLIANT"
|
|
prohibited_scripts_found: 0
|
|
description: "No se encontraron scripts *fix, *patch, *temp"
|
|
|
|
sql_syntax:
|
|
status: "✅ 99.6% QUALITY"
|
|
critical_errors: 0
|
|
minor_issues: 12
|
|
description: "11 usos de NOW() en lugar de gamilit.now_mexico()"
|
|
|
|
dependencies:
|
|
status: "✅ 100% RESOLVED"
|
|
functions_declared: 66
|
|
functions_referenced: 12
|
|
functions_missing: 0
|
|
circular_dependencies:
|
|
- dependency: "profiles.school_id → schools"
|
|
solution: "FK constraint diferido en Fase 9.5"
|
|
status: "✅ RESOLVED"
|
|
|
|
script_structure:
|
|
status: "✅ EXCELLENT"
|
|
phases_total: 17
|
|
phases_documented: 17
|
|
execution_order: "✅ CORRECT"
|
|
|
|
documentation:
|
|
status: "⚠️ 95% COMPLETE"
|
|
readme_updated: true
|
|
missing_in_readme:
|
|
- "Phase 16 was missing (FIXED 2025-11-11)"
|
|
schemas_with_maps: "12/12 (100%)" # ✅ CORREGIDO 2025-11-23 (solo schemas reales)
|
|
|
|
# ============================================================================
|
|
# ESTADÍSTICAS DE ARCHIVOS DDL
|
|
# ============================================================================
|
|
ddl_statistics:
|
|
by_schema:
|
|
gamification_system: 92 # 25.4%
|
|
educational_content: 48 # 13.3% (DB-122: +3)
|
|
progress_tracking: 39 # 10.8% (DB-122: +1)
|
|
social_features: 28 # 7.7%
|
|
lti_integration: 22 # 6.1%
|
|
system_configuration: 20 # 5.5% (DB-122: +2)
|
|
auth_management: 18 # 5.0%
|
|
content_management: 18 # 5.0%
|
|
audit_logging: 12 # 3.3%
|
|
auth: 8 # 2.2%
|
|
communication: 2 # 0.6% (DB-122: NUEVO)
|
|
notifications: 10 # 2.8% (DB-124)
|
|
note: "ACTUALIZADO 2025-11-23: Eliminados schemas no implementados (gamilit, admin_dashboard, storage, public)"
|
|
|
|
largest_schemas:
|
|
- name: "gamification_system"
|
|
files: 92
|
|
percentage: "25.4%"
|
|
|
|
- name: "educational_content"
|
|
files: 48
|
|
percentage: "13.3%"
|
|
|
|
- name: "progress_tracking"
|
|
files: 39
|
|
percentage: "10.8%"
|
|
|
|
# ============================================================================
|
|
# SCRIPT EXECUTION PHASES
|
|
# ============================================================================
|
|
execution_phases:
|
|
- phase: 1
|
|
name: "PREREQUISITES"
|
|
description: "Schemas base y ENUMs"
|
|
file: "ddl/00-prerequisites.sql"
|
|
|
|
- phase: 2
|
|
name: "GAMILIT SCHEMA"
|
|
description: "Funciones compartidas y utilities"
|
|
directory: "ddl/schemas/gamilit"
|
|
|
|
- phase: 3
|
|
name: "AUTH SCHEMA"
|
|
description: "Autenticación base"
|
|
directory: "ddl/schemas/auth"
|
|
|
|
- phase: 4
|
|
name: "STORAGE SCHEMA"
|
|
description: "Storage del sistema"
|
|
directory: "ddl/schemas/storage"
|
|
|
|
- phase: 5
|
|
name: "AUTH_MANAGEMENT"
|
|
description: "Gestión de usuarios"
|
|
directory: "ddl/schemas/auth_management"
|
|
|
|
- phase: 6
|
|
name: "EDUCATIONAL_CONTENT"
|
|
description: "Contenido educativo"
|
|
directory: "ddl/schemas/educational_content"
|
|
|
|
- phase: 7
|
|
name: "GAMIFICATION_SYSTEM"
|
|
description: "Sistema de gamificación"
|
|
directory: "ddl/schemas/gamification_system"
|
|
|
|
- phase: 8
|
|
name: "PROGRESS_TRACKING"
|
|
description: "Seguimiento de progreso"
|
|
directory: "ddl/schemas/progress_tracking"
|
|
|
|
- phase: 9
|
|
name: "SOCIAL_FEATURES"
|
|
description: "Características sociales"
|
|
directory: "ddl/schemas/social_features"
|
|
|
|
- phase: 9.5
|
|
name: "FK CONSTRAINTS DIFERIDOS"
|
|
description: "Resolución de dependencias circulares"
|
|
directory: "ddl/schemas/auth_management/fk-constraints"
|
|
note: "Resuelve profiles.school_id → schools FK"
|
|
|
|
- phase: 10
|
|
name: "CONTENT_MANAGEMENT"
|
|
description: "Gestión de contenido"
|
|
directory: "ddl/schemas/content_management"
|
|
|
|
- phase: 10.5
|
|
name: "COMMUNICATION" # DB-122: Nueva fase
|
|
description: "Sistema de mensajería y comunicación"
|
|
directory: "ddl/schemas/communication"
|
|
note: "DB-122: Comunicación formal maestro-estudiante con threading, attachments y moderación"
|
|
|
|
- phase: 11
|
|
name: "AUDIT_LOGGING"
|
|
description: "Auditoría"
|
|
directory: "ddl/schemas/audit_logging"
|
|
|
|
- phase: 12
|
|
name: "SYSTEM_CONFIGURATION"
|
|
description: "Configuración del sistema"
|
|
directory: "ddl/schemas/system_configuration"
|
|
|
|
- phase: 13
|
|
name: "ADMIN_DASHBOARD"
|
|
description: "Dashboard administrativo"
|
|
directory: "ddl/schemas/admin_dashboard"
|
|
|
|
- phase: 14
|
|
name: "LTI_INTEGRATION"
|
|
description: "Learning Tools Interoperability"
|
|
directory: "ddl/schemas/lti_integration"
|
|
|
|
- phase: 15
|
|
name: "PUBLIC SCHEMA"
|
|
description: "Schema público (deshabilitado)"
|
|
directory: "ddl/schemas/public"
|
|
status: "disabled"
|
|
|
|
- phase: 16
|
|
name: "SEED DATA"
|
|
description: "Carga de datos iniciales de producción"
|
|
directory: "seeds/prod"
|
|
seeds_loaded: 19
|
|
|
|
# ============================================================================
|
|
# IMPLEMENTACIÓN MÓDULOS 4-5
|
|
# ============================================================================
|
|
m4_m5_implementation:
|
|
date: "2025-11-29"
|
|
status: "PRODUCTION_READY"
|
|
description: "Infraestructura para ejercicios creativos y multimedia (Módulos 4-5)"
|
|
|
|
tables_added:
|
|
educational_content:
|
|
- name: "media_attachments"
|
|
file: "09-media_attachments.sql"
|
|
purpose: "Almacenamiento de archivos multimedia (audio, video, imágenes)"
|
|
fields: ["submission_id", "exercise_id", "user_id", "media_type", "media_url", "file_size"]
|
|
indexes: 4
|
|
|
|
progress_tracking:
|
|
- name: "manual_reviews"
|
|
file: "06-manual_reviews.sql"
|
|
purpose: "Evaluación manual de ejercicios creativos por profesores"
|
|
fields: ["submission_id", "reviewer_id", "status", "rubric_scores", "feedback"]
|
|
indexes: 3
|
|
|
|
functions_added:
|
|
educational_content:
|
|
- name: "validate_module4_module5_answer"
|
|
purpose: "Validación de estructura JSONB para respuestas M4-M5"
|
|
note: "Valida estructura de datos, NO contenido (evaluación manual)"
|
|
|
|
seeds_moved_to_production:
|
|
- file: "educational_content/05-exercises-module4.sql"
|
|
exercises: 5
|
|
module: "MOD-04-DIGITAL"
|
|
moved_from: "_backlog"
|
|
|
|
- file: "educational_content/06-exercises-module5.sql"
|
|
exercises: 3
|
|
module: "MOD-05-PRODUCCION"
|
|
moved_from: "_backlog"
|
|
|
|
exercises_total: 8
|
|
modules_enabled:
|
|
- "MOD-04-DIGITAL (Lectura Digital)"
|
|
- "MOD-05-PRODUCCION (Producción Creativa)"
|
|
|
|
capabilities:
|
|
- "Subida de archivos multimedia (audio, video, imágenes)"
|
|
- "Evaluación manual con rúbricas por profesores"
|
|
- "Panel de revisión para profesores"
|
|
- "Sistema de alertas de intervención estudiantil"
|
|
|
|
integration_points:
|
|
frontend:
|
|
- "MediaUploader component (shared/components/mechanics/)"
|
|
- "RubricEvaluator component"
|
|
- "ReviewPanel (apps/teacher/pages/)"
|
|
- "useVideoRecorder hook"
|
|
- "useAudioRecorder hook"
|
|
|
|
backend:
|
|
- "MediaUploadController (educational/controllers/)"
|
|
- "MediaStorageService"
|
|
- "ManualReviewService (teacher/services/)"
|
|
- "ShopController and ShopService (gamification)"
|
|
|
|
validation_status: "COMPLETE"
|
|
tests_status: "PENDING"
|
|
documentation_status: "COMPLETE"
|
|
|
|
# ============================================================================
|
|
# PRÓXIMAS ACCIONES
|
|
# ============================================================================
|
|
next_actions:
|
|
immediate:
|
|
- action: "Agregar 4 seeds críticos a create-database.sh"
|
|
priority: "P0"
|
|
time_estimate: "30 min"
|
|
|
|
- action: "Ejecutar create-database.sh en test database"
|
|
priority: "P0"
|
|
time_estimate: "15 min"
|
|
requires: "DATABASE_URL configurada"
|
|
|
|
- action: "Corregir 12 usos de NOW() a gamilit.now_mexico()"
|
|
priority: "P1"
|
|
time_estimate: "20 min"
|
|
|
|
- action: "Deprecar 2 seeds duplicados"
|
|
priority: "P1"
|
|
time_estimate: "10 min"
|
|
|
|
short_term:
|
|
- action: "Evaluar 6 seeds opcionales según requerimientos"
|
|
priority: "P2"
|
|
time_estimate: "1 hora"
|
|
|
|
- action: "Actualizar TRAZA-TAREAS-DATABASE.md con DB-092"
|
|
priority: "P2"
|
|
time_estimate: "15 min"
|
|
|
|
long_term:
|
|
- action: "Automatizar validaciones con CI/CD"
|
|
priority: "P3"
|
|
time_estimate: "4 horas"
|
|
|
|
# ============================================================================
|
|
# REFERENCIAS
|
|
# ============================================================================
|
|
references:
|
|
validation_reports:
|
|
- "orchestration/database/DB-124/REPORTE-FINAL-DB-124-AUDITORIA.md" # ⭐ INICIO AQUÍ - Resumen ejecutivo completo
|
|
- "orchestration/database/DB-124/README.md"
|
|
- "orchestration/database/DB-092/REPORTE-VALIDACION-CARGA-LIMPIA.md"
|
|
- "orchestration/database/DB-098/04-VALIDACION.md"
|
|
- "orchestration/database/DB-098/05-DOCUMENTACION.md"
|
|
- "orchestration/database/DB-099/05-REPORTE-FINAL.md"
|
|
|
|
analysis_documents:
|
|
- "orchestration/database/DB-124/reportes/RESUMEN-CICLO-1-INVENTARIO-COMPLETO.md"
|
|
- "orchestration/database/DB-124/reportes/RESUMEN-CICLO-2-INTEGRIDAD-REFERENCIAL.md"
|
|
- "orchestration/database/DB-124/reportes/03-CICLO-3-FUNCIONES-COMPLETO.md"
|
|
- "orchestration/database/DB-092/01-ANALISIS.md"
|
|
- "orchestration/database/DB-098/01-ANALISIS.md"
|
|
- "orchestration/database/DB-099/01-ANALISIS.md"
|
|
|
|
script_file: "apps/database/create-database.sh"
|
|
readme: "apps/database/README.md"
|
|
traza: "orchestration/TRAZA-TAREAS-DATABASE.md"
|
|
|
|
artifacts_directories:
|
|
- directory: "orchestration/database/DB-124/"
|
|
artifacts_count: 20 # 17 reportes + 3 archivos raíz (README, REPORTE-FINAL, scripts/)
|
|
status: "En progreso - Fase 1 completada (Ciclos 1-3/10)"
|
|
- directory: "orchestration/database/DB-092/"
|
|
artifacts_count: 20
|
|
- directory: "orchestration/database/DB-098/"
|
|
artifacts_count: 5
|
|
- directory: "orchestration/database/DB-099/"
|
|
artifacts_count: 4
|
|
|
|
# ============================================================================
|
|
# NOTAS
|
|
# ============================================================================
|
|
notes:
|
|
- "🔍 AUDITORÍA MANUAL 2025-11-29 (v3.1.0): CORRECCIONES DE CONTEOS ESPECÍFICOS"
|
|
- " ✅ educational_content.tables: 24 → 20 (archivo 24-alter_assignment_students.sql es ALTER, no CREATE TABLE)"
|
|
- " ✅ progress_tracking.tables: 18 → 17 (conteo directo de tablas reales en /tables/)"
|
|
- " ✅ progress_tracking.triggers: 6/7 → 22 (12 en /triggers/ + 10 en /tables/ = 22 totales)"
|
|
- " ✅ Agregada sección m4_m5_implementation con infraestructura completa M4-M5"
|
|
- "🔍 AUDITORÍA DB-124 (2025-11-28): INVENTARIO ACTUALIZADO CON CONTEOS REALES DEL DDL"
|
|
- "🔍 AUDITORÍA DB-124: Conteos basados en archivos DDL reales, no en parsing de CREATE statements"
|
|
- "🔍 AUDITORÍA DB-124: Identificados y eliminados 46 índices duplicados durante la auditoría"
|
|
- "🔍 AUDITORÍA DB-124: Conteos anteriores inflados - ajustados de 772 → 646 objetos totales"
|
|
- "📊 CONTEOS VALIDADOS 2025-11-28:"
|
|
- " - Schemas: 14 implementados (16 directorios - excluye public/storage defaults del sistema)"
|
|
- " - Tablas: 126 archivos .sql en /tables/ (conteo directo DDL)"
|
|
- " - Funciones: 106 archivos .sql en /functions/ (conteo directo DDL)"
|
|
- " - Triggers: 91 (88 únicos según auditoría + 3 helpers)"
|
|
- " - Índices: 21 archivos .sql en /indexes/ (POST-LIMPIEZA: 46 duplicados eliminados)"
|
|
- " - Views: 15 (incluye 7 de admin_dashboard)"
|
|
- " - Políticas RLS: 243"
|
|
- " - Foreign Keys: 208"
|
|
- "⚠️ NOTA CRÍTICA: Los conteos de índices reflejan la estructura POST-LIMPIEZA"
|
|
- "⚠️ 46 índices duplicados fueron identificados y eliminados durante auditoría DB-124"
|
|
- "DB-124 (2025-11-19): AUDITORÍA EXHAUSTIVA FASE 1 COMPLETADA (Ciclos 1-3/10)"
|
|
- "DB-124: 31 hallazgos identificados, 3 resueltos (H-001 notifications, H-004 educational_content, H-005 gamilit)"
|
|
- "DB-124 H-022: Soft-delete implementado en auth_management.profiles (77 FKs) y tenants (29 FKs)"
|
|
- "DB-124: Validación completa integridad referencial - 205 FKs 100% válidos, 91 triggers 100% válidos, 0 referencias rotas"
|
|
- "TEACHER-PORTAL-FIX (2025-11-26): Tabla social_features.teacher_reports agregada para persistir reportes de profesores"
|
|
- "DB-122 (2025-11-19): Implementación P0+P1 Portales Admin/Maestro COMPLETADA"
|
|
- "DB-122: Nuevo schema communication para mensajería maestro-estudiante"
|
|
- "DB-122: Portales alcanzaron 95% funcionalidad (Admin: 94%, Maestro: 96%)"
|
|
- "DB-121: Contenido ejercicios 100% alineado con documento v6.2"
|
|
- "Inventario actualizado con validación completa de ejecución (DB-098, DB-100, DB-124)"
|
|
- "Conteos validados contra estructura REAL de archivos DDL (2025-11-28)"
|
|
- "Política de Carga Limpia: 100% cumplida (0 scripts prohibidos)"
|
|
- "Última ejecución: 2025-11-29 (drop-and-recreate-database.sh)"
|
|
- "Última modificación: 2025-11-29 (Auditoría Manual v3.1.0 - Correcciones conteos + sección M4-M5)"
|