workspace/projects/gamilit/orchestration/inventarios/SEEDS_INVENTORY.yml
rckrdmrd 608e1e2a2e
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
Multi-project update: gamilit, orchestration, trading-platform
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>
2025-12-18 07:17:46 -06:00

1135 lines
43 KiB
YAML

seeds_inventory:
version: 1.3.0
fecha: '2025-12-18'
metadata:
proyecto: GAMILIT - Plataforma de Aprendizaje Gamificada
proposito: Inventario completo de seeds (datos iniciales) DEV y PROD
ubicacion_base: apps/database/seeds/
ultima_migracion: '2025-12-18 (Carga usuarios producción desde backup)'
modelo_datos: JSONB puro (consistente)
resumen_ejecutivo:
total_seeds_prod: 53 # ✅ Actualizado 2025-12-18 (+2 seeds usuarios producción)
total_seeds_dev: 54 # ✅ Actualizado 2025-12-18
ejercicios_prod: 23
ejercicios_dev: 24
estado_prod: production-ready
completitud_prod: 100%
alineacion_dev_prod: 99% # ✅ Mejorado: Seeds principales idénticos
p0_seeds_coverage: 100%
notas_actualizacion: |
2025-12-18 (Carga Usuarios Producción desde Backup):
========================================================
NUEVOS SEEDS:
- auth/02-production-users.sql: 44 usuarios de producción
- auth_management/06-profiles-production.sql: 44 perfiles corregidos
FUENTE DE DATOS:
- backup-prod/auth_users_2025-12-18.csv
- backup-prod/profiles_2025-12-18.csv
USUARIOS EXCLUIDOS:
- rckrdmrd@gmail.com (usuario de pruebas del owner)
- ju188an@gmail.com (registro incompleto)
CORRECCIONES APLICADAS:
- profiles.id = user_id (corregido para consistencia)
- tenant_id = GAMILIT Platform principal
- Preservación de UUIDs y hashes bcrypt originales
INICIALIZACIÓN AUTOMÁTICA:
- Trigger trg_initialize_user_stats se ejecuta al insertar profiles
- Crea automáticamente: user_stats, user_ranks, comodines_inventory, module_progress
2025-12-15 (Simplificación Estructura - SOLO DEFAULTS):
========================================================
CAMBIOS MAYORES:
- 01-schools.sql: VACIADO - No más escuelas demo (Marie Curie, IEI removidas)
- 02-classrooms.sql: SIMPLIFICADO - Solo classroom DEFAULT
- 03-classroom-members.sql: SIMPLIFICADO - Todos los estudiantes → DEFAULT
- 08-assign-admin-schools.sql: EXPANDIDO - Asigna TODOS los usuarios a escuela default
DECISIÓN DE DISEÑO:
- Solo 1 escuela (Sistema - Por Asignar)
- Solo 1 classroom (Sin Asignar - Aula Default)
- Trigger trg_assign_default_classroom asigna automáticamente
- Admin crea entidades adicionales desde UI
ENTIDADES ELIMINADAS:
- Escuela Primaria Marie Curie (CDMX)
- Instituto de Educación Integral (Guadalajara)
- Aulas demo: 5to A, 5to B, 6to A, Aula Pruebas, Parent Portal Demo
CORRECCIÓN MENOR:
- enrollment_method: 'auto_assignment' → 'admin_add' (constraint fix)
2025-12-15 (Flujo Usuarios - Tech-Leader):
- Agregado 00-schools-default.sql (Escuela Sistema - Por Asignar)
- Agregado 08-assign-admin-schools.sql (Asignar escuela a usuarios)
- Modificado 02-classrooms.sql (classroom default → escuela sistema)
2025-12-14 (Validación Automatizada):
- Corregido 04-friendships.sql (v1.2 - ajustado a DDL actual)
- Movido 05-profiles-demo.sql a _deprecated/ (requiere auth.users)
- Total seeds activos: 49 PROD, 50 DEV
- Paridad script vs filesystem: 100%
2025-12-14: AUDIT-DB-001 - P0 Seeds críticos agregados:
- 07-user_roles.sql (8 roles)
- 10-mission_templates.sql (11 templates)
- 11-module_dependencies.sql (6 dependencias)
- 12-taxonomies.sql (4 taxonomías)
- 02-marie_curie_content.sql (6 artículos)
2025-11-23: Actualizado tras corrección ADR-010.
Total ejercicios: 23 según DocumentoDeDiseño v6.4
produccion:
ubicacion: apps/database/seeds/prod/
total_archivos: 49 # ✅ Actualizado 2025-12-14
estado: production-ready
completitud: 100%
ultima_actualizacion: '2025-12-14'
schemas:
# ===========================================================================
# AUDIT LOGGING
# ===========================================================================
audit_logging:
archivos: 1
seeds:
- nombre: 01-default-config.sql
descripcion: Configuración por defecto de auditoría
tablas:
- audit_logs (estructura)
registros_estimados: 0
dependencias: []
estado: activo
# ===========================================================================
# AUTH (Base auth)
# ===========================================================================
auth:
archivos: 2
seeds:
- nombre: 01-demo-users.sql
descripcion: Usuarios de demostración y testing
tablas:
- users
registros_estimados: 3
perfiles:
- admin@gamilit.com
- teacher@gamilit.com
- student@gamilit.com
dependencias: []
estado: activo
- nombre: 02-production-users.sql
descripcion: Usuarios estudiantes registrados en producción
tablas:
- users
registros_estimados: 45
version: 3.0.0
fecha_actualizacion: '2025-12-18'
fuente: backup-prod/auth_users_2025-12-18.csv
notas: |
- 45 estudiantes reales de producción
- Excluido: rckrdmrd@gmail.com (usuario pruebas owner)
- Preserva UUIDs originales para integridad FK
- Preserva hashes bcrypt originales
lotes:
- fecha: 2025-11-18
cantidad: 13
- fecha: 2025-11-24
cantidad: 23
- fecha: 2025-11-25
cantidad: 6
- fecha: 2025-12-08/17
cantidad: 2
dependencias: []
estado: activo
# ===========================================================================
# AUTH MANAGEMENT
# ===========================================================================
auth_management:
archivos: 7
seeds:
- nombre: 01-tenants.sql
descripcion: Tenants (organizaciones)
tablas:
- tenants
registros_estimados: 3
tenants:
- Gamilit Demo (principal)
- Colegio Demo
- Universidad Demo
dependencias: []
estado: activo
- nombre: 02-auth_providers.sql
descripcion: Proveedores de autenticación
tablas:
- auth_providers
registros_estimados: 3
providers:
- email/password
- Google OAuth
- Microsoft OAuth
dependencias: []
estado: activo
- nombre: 03-profiles.sql
descripcion: Perfiles básicos de usuarios
tablas:
- profiles
registros_estimados: 5-10
dependencias:
- auth.users
- auth_management.tenants
estado: activo
- nombre: 04-profiles-complete.sql
descripcion: Perfiles completos para usuarios de testing
tablas:
- profiles
registros_estimados: 3
incluye:
- admin@gamilit.com
- teacher@gamilit.com
- student@gamilit.com
alcance: Usuarios de testing SOLO
dependencias:
- auth.users
- auth_management.tenants
estado: activo
- nombre: 06-profiles-production.sql
descripcion: Perfiles para usuarios de producción
tablas:
- profiles
registros_estimados: 45
version: 3.0.0
fecha_actualizacion: '2025-12-18'
fuente: backup-prod/profiles_2025-12-18.csv
notas: |
- 45 perfiles de estudiantes de producción
- Excluido: rckrdmrd@gmail.com (usuario pruebas owner)
- profiles.id = user_id para TODOS (corregido)
- tenant_id = GAMILIT Platform principal
- Trigger trg_initialize_user_stats crea user_stats, user_ranks, etc.
lotes:
- fecha: 2025-11-18
cantidad: 13
- fecha: 2025-11-24
cantidad: 23
- fecha: 2025-11-25
cantidad: 6
- fecha: 2025-12-08/17
cantidad: 3
dependencias:
- auth/02-production-users.sql
- auth_management.tenants
estado: activo
- nombre: 07-user_roles.sql
descripcion: Asignación de roles a usuarios (P0 AUDIT-DB-001)
tablas:
- user_roles
registros_estimados: 8
roles:
- 1 super_admin (admin@gamilit.com)
- 2 admin_teacher (teacher@gamilit.com, Laura Martínez)
- 5 student (estudiantes demo)
uuids: '10000001-0000-0000-0000-00000000000N'
dependencias:
- auth_management.profiles
- auth_management.tenants
estado: activo
audit: AUDIT-DB-001-P0
fecha_creacion: '2025-12-14'
- nombre: 08-assign-admin-schools.sql
descripcion: Asignación de escuela default a TODOS los usuarios
tablas:
- profiles (UPDATE)
registros_estimados: todos los usuarios sin school_id
version: 2.0.0
usuarios_afectados:
- TODOS los roles (super_admin, admin_teacher, student, parent)
- Cualquier usuario nuevo sin school_id
logica: |
UPDATE auth_management.profiles
SET school_id = (escuela SYSTEM-UNASSIGNED)
WHERE school_id IS NULL
dependencias:
- auth_management.profiles
- social_features.schools (00-schools-default.sql)
estado: activo
fecha_creacion: '2025-12-15'
fecha_actualizacion: '2025-12-15'
notas: |
v2.0 (2025-12-15): Expandido para asignar TODOS los usuarios.
Garantiza integridad referencial school_id.
Admin puede reasignar usuarios desde UI.
# ===========================================================================
# CONTENT MANAGEMENT
# ===========================================================================
content_management:
archivos: 2
seeds:
- nombre: 01-default-templates.sql
descripcion: Templates de contenido predeterminados
tablas:
- content_templates
registros_estimados: 5-10
templates:
- Biografía Marie Curie
- Historia científica
- Experimentos
dependencias: []
estado: activo
- nombre: 02-marie_curie_content.sql
descripcion: Contenido biográfico de Marie Curie (P0 AUDIT-DB-001)
tablas:
- marie_curie_content
registros_estimados: 6
articulos:
- Primeros Años en Polonia
- Llegada a París y la Sorbona
- Descubrimiento de la Radiactividad
- Premios Nobel
- Mujeres en la Ciencia
- Legado Científico
uuids: '50000001-0000-0000-0000-00000000000N'
dependencias:
- content_management.content_templates
estado: activo
audit: AUDIT-DB-001-P0
fecha_creacion: '2025-12-14'
# ===========================================================================
# EDUCATIONAL CONTENT ⭐ PRINCIPAL
# ===========================================================================
educational_content:
archivos: 10
total_ejercicios: 23
modelo_datos: JSONB puro
descripcion: Seeds completos de módulos y ejercicios (production-ready)
seeds:
- nombre: 01-modules.sql
descripcion: 5 módulos educativos principales
tablas:
- modules
registros: 5
modulos:
- MOD-01-LITERAL: Comprensión Literal
- MOD-02-INFERENCIAL: Comprensión Inferencial
- MOD-03-CRITICA: Comprensión Crítica
- MOD-04-DIGITAL: Textos Digitales
- MOD-05-CREATIVO: Producción Creativa
dependencias: []
estado: activo
- nombre: 02-exercises-module1.sql
descripcion: Módulo 1 - Comprensión Literal (Alineado con Doc v6.2)
tablas:
- exercises
registros: 5
lineas_codigo: 630
ultima_actualizacion: '2025-11-23'
ejercicios:
- 1.1: Crucigrama Científico (order_index 1)
- 1.2: Línea de Tiempo (order_index 2)
- 1.3: Completar Espacios en Blanco (order_index 3) - Datos biográficos de Marie
- 1.4: Verdadero o Falso (order_index 4) - Hechos sobre juventud de Marie
- 1.5: Sopa de Letras BONUS (order_index 5) - Vocabulario científico
mecanicas:
- crucigrama
- linea_tiempo
- completar_espacios
- verdadero_falso
- sopa_letras
dependencias:
- educational_content.modules (MOD-01-LITERAL)
estado: activo
modelo: JSONB puro (config, content, solution)
cambios_v6_2:
- ejercicio_1_3: cambiado de Sopa de Letras a Completar Espacios en Blanco
- ejercicio_1_4: cambiado de Mapa Conceptual a Verdadero o Falso
- ejercicio_1_5: cambiado de Emparejamiento a Sopa de Letras (BONUS)
- referencia: DocumentoDeDiseño v6.2 (DB-121)
correccion_2025_11_23:
- ejercicio_1_3_espacios_5_6: corregida asimetría de alternativas
- antes: espacio_5 solo 'ciencias', espacio_6 'matemáticas' o 'física'
- despues: ambos espacios aceptan cualquiera de ['ciencias', 'matemáticas', 'física']
- restriccion_backend: espacio_5 ≠ espacio_6 (NO redundancias)
- combinaciones_validas: 6 de 9 posibles
- documentacion: orchestration/agentes/database/ejercicio-1-3-correccion-implementada-2025-11-23/
- backups_creados: 02-exercises-module1.sql.backup.20251123_ejercicio13
- nombre: 03-exercises-module2.sql
descripcion: Módulo 2 - Comprensión Inferencial
tablas:
- exercises
registros: 5
lineas_codigo: 587
ejercicios:
- 2.1: Detective Textual
- 2.2: Construcción de Hipótesis
- 2.3: Predicción Narrativa
- 2.4: Puzzle de Contexto
- 2.5: Rueda de Inferencias
mecanicas:
- detective_textual
- construccion_hipotesis
- prediccion_narrativa
- puzzle_contexto
- rueda_inferencias
dependencias:
- educational_content.modules (MOD-02-INFERENCIAL)
estado: activo
modelo: JSONB puro (config, content, solution)
- nombre: 04-exercises-module3.sql
descripcion: Módulo 3 - Comprensión Crítica (Alineado con Doc v6.4)
tablas:
- exercises
registros: 5
lineas_codigo: 608
ultima_actualizacion: '2025-11-23'
ejercicios:
- 3.1: Tribunal de Opiniones (order_index 1) - Clasificar afirmaciones HECHO/OPINIÓN/INTERPRETACIÓN
- 3.2: Debate Digital (order_index 2) - ¿La fama afectó negativamente a Marie Curie?
- 3.3: Análisis de Fuentes (order_index 3) - Método CRAAP
- 3.4: Podcast Argumentativo (order_index 4) - Impacto en equidad de género
- 3.5: Matriz de Perspectivas (order_index 5) - 6 perspectivas incluyendo Marie y Pierre Curie
mecanicas:
- tribunal_opiniones
- debate_digital
- analisis_fuentes
- podcast_argumentativo
- matriz_perspectivas
dependencias:
- educational_content.modules (MOD-03-CRITICA)
estado: activo
modelo: JSONB puro (config, content, solution)
cambios_v6_3:
- tribunal_opiniones: formato statements con 8 afirmaciones
- debate_digital: tema actualizado sobre fama post-Nobel
- matriz_perspectivas: perspectivas 5-6 ahora son Marie y Pierre Curie
cambios_v6_4:
- ejercicio_3_2: timeLimit reducido de 1500s (25min) a 600s (10min) - GAP-004, homologación PO
- ejercicio_3_4: duración reducida de 180-300s a 120s (2min exactos) - GAP-003, ADR-009
- referencia: commit 6962423 (2025-11-23)
- nombre: 05-exercises-module4.sql
descripcion: Módulo 4 - Lectura Digital y Multimodal (5 ejercicios oficiales)
tablas:
- exercises
registros: 5
lineas_codigo: 407
referencia: DocumentoDeDiseño_Mecanicas_GAMILIT_v6_1.md líneas 782-965
ejercicios:
- 4.1: Verificador de Fake News (verificador_fake_news)
- 4.2: Infografía Interactiva (infografia_interactiva)
- 4.3: Quiz TikTok (quiz_tiktok)
- 4.4: Navegación Hipertextual (navegacion_hipertextual)
- 4.5: Análisis de Memes (analisis_memes)
mecanicas:
- verificador_fake_news
- infografia_interactiva
- quiz_tiktok
- navegacion_hipertextual
- analisis_memes
estructura_jsonb_navegacion_hipertextual:
nodes:
descripcion: "Array de nodos hipertextuales navegables"
estructura_nodo:
id: "string - identificador único del nodo"
title: "string - título del documento/sección"
content: "string - contenido del nodo (texto con formato)"
links: "array de {targetId, label} - enlaces a otros nodos"
startNodeId: "string - ID del nodo donde inicia el estudiante"
targetNodeId: "string - ID del nodo objetivo a alcanzar"
optimalPath: "array de strings - ruta óptima recomendada"
researchQuestion: "string - pregunta de investigación guía"
dependencias:
- educational_content.modules (MOD-04-DIGITAL)
estado: activo
modelo: JSONB puro (config, content, solution)
- nombre: 06-exercises-module5.sql
descripcion: Módulo 5 - Producción Creativa (EXPANDIDO Fase 1)
tablas:
- exercises
registros: 3
lineas_codigo: 835
version: 2.0.0
fecha_expansion: '2025-11-11'
incremento: 861%
ejercicios:
- 5.1: Diario Multimedia
- 5.2: Cómic Digital
- 5.3: Video-Carta
mecanicas:
- diario_multimedia
- comic_digital
- video_carta
estructura_jsonb_completa:
diario_multimedia:
- 3 templates (clásico, científico, carta)
- 5 prompts detallados con contexto histórico
- Rúbricas de creatividad (4 criterios)
- Ejemplo de entrada (156 palabras)
comic_digital:
- 4 panel layouts
- 5 estilos visuales
- 6 story beats con descripciones visuales
- Guía de emociones y técnicas
video_carta:
- 6 temas completos
- Script de ejemplo (487 palabras)
- 8 delivery tips
- Estructura guiada
dependencias:
- educational_content.modules (MOD-05-CREATIVO)
estado: activo
modelo: JSONB puro (config, content, solution)
- nombre: 07-assessment-rubrics.sql
descripcion: Rúbricas de evaluación para ejercicios
tablas:
- assessment_rubrics
registros: 20-30
cobertura:
- Rúbricas por mecánica
- Criterios de evaluación
- Escalas de puntuación
dependencias:
- educational_content.exercises
estado: activo
- nombre: 08-difficulty_criteria.sql
descripcion: Criterios de dificultad y progresión CEFR
tablas:
- difficulty_criteria
registros: 15-20
incluye:
- Niveles CEFR (A1, A2, B1, B2, C1, C2)
- Criterios por nivel
- Progresión de dificultad
dependencias: []
estado: activo
- nombre: 11-module_dependencies.sql
descripcion: Dependencias y prerrequisitos entre módulos (P0 AUDIT-DB-001)
tablas:
- module_dependencies
registros_estimados: 6
dependencias_modulo:
- MOD-02 requires MOD-01 (80%)
- MOD-03 requires MOD-02 (80%)
- MOD-04 requires MOD-01 (50%)
- MOD-04 recommends MOD-02 (60%)
- MOD-05 requires MOD-03 (80%)
- MOD-05 recommends MOD-04 (50%)
tipos_dependencia:
- required (4)
- recommended (2)
uuids: '30000001-0000-0000-0000-00000000000N'
dependencias:
- educational_content.modules
estado: activo
audit: AUDIT-DB-001-P0
fecha_creacion: '2025-12-14'
- nombre: 12-taxonomies.sql
descripcion: Taxonomías educativas para clasificación (P0 AUDIT-DB-001)
tablas:
- taxonomies
registros_estimados: 4
taxonomias:
- Bloom (cognitiva, 6 niveles)
- SOLO (estructural, 5 niveles)
- Webb DOK (profundidad, 4 niveles)
- GAMILIT (personalizada, 5 niveles)
tipos:
- bloom
- solo
- webb
- custom
uuids: '40000001-0000-0000-0000-00000000000N'
dependencias: []
estado: activo
audit: AUDIT-DB-001-P0
fecha_creacion: '2025-12-14'
archivos_deprecated:
- nombre: _deprecated/02-exercises-demo.sql
razon: Migrado a 02-06 (2025-11-11)
destino: 02-exercises-module1.sql y otros
- nombre: _deprecated/03-exercises-complete.sql
razon: Migrado a 02-06 (2025-11-11)
destino: 02-exercises-module1.sql y otros
- nombre: _deprecated/04-exercise-mechanics.sql.deprecated
razon: Tabla no existe, config integrado en exercises
- nombre: _deprecated/05-exercise-options.sql.deprecated
razon: Tipos actuales no usan exercise_options
- nombre: _deprecated/06-exercise-answers.sql
razon: Modelo dual eliminado, JSONB puro (2025-11-11)
# ===========================================================================
# GAMIFICATION SYSTEM
# ===========================================================================
gamification_system:
archivos: 10
seeds:
- nombre: 01-achievement_categories.sql
descripcion: Categorías de logros
tablas:
- achievement_categories
registros: 5-8
categorias:
- Explorador
- Maestro
- Colaborador
- Innovador
dependencias: []
estado: activo
- nombre: 02-leaderboard_metadata.sql
descripcion: Metadatos de leaderboards
tablas:
- leaderboard_metadata
registros: 4
leaderboards:
- Global XP
- ML Coins
- Streaks
- Por mecánica
dependencias: []
estado: activo
- nombre: 03-maya_ranks.sql
descripcion: Rangos maya del sistema
tablas:
- maya_ranks
registros: 7
rangos:
- Novato
- Aprendiz
- Experto
- Maestro
- Sabio
- Guardián
- Leyenda
dependencias: []
estado: activo
- nombre: 04-achievements.sql
descripcion: Logros del sistema (20 logros demo)
tablas:
- achievements
registros: 20
tipos:
- Por progreso
- Por maestría
- Por colaboración
- Por constancia
dependencias:
- gamification_system.achievement_categories
estado: activo
- nombre: 05-user_stats.sql
descripcion: Estadísticas iniciales de usuarios
tablas:
- user_stats
registros: 5-10
dependencias:
- auth.users
estado: activo
- nombre: 06-user_ranks.sql
descripcion: Rangos asignados a usuarios
tablas:
- user_ranks
registros: 5-10
dependencias:
- gamification_system.user_stats
- gamification_system.maya_ranks
estado: activo
- nombre: 07-ml_coins_transactions.sql
descripcion: Transacciones iniciales de ML coins
tablas:
- ml_coins_transactions
registros: 10-20
dependencias:
- gamification_system.user_stats
estado: activo
- nombre: 08-user_achievements.sql
descripcion: Logros desbloqueados por usuarios
tablas:
- user_achievements
registros: 5-15
dependencias:
- gamification_system.achievements
- auth.users
estado: activo
- nombre: 09-comodines_inventory.sql
descripcion: Inventario de comodines
tablas:
- comodines_inventory
registros: 5-10
comodines:
- Pistas
- Visión Lectora
- Segunda Oportunidad
dependencias:
- auth.users
estado: activo
- nombre: 10-mission_templates.sql
descripcion: Templates de misiones diarias/semanales/especiales (P0 AUDIT-DB-001)
tablas:
- mission_templates
registros_estimados: 11
templates:
daily:
- Calentamiento Científico (3 ejercicios)
- Mente Brillante (5 racha)
- Acumulador de Sabiduría (100 XP)
- Perfeccionista del Día (1 perfect)
weekly:
- Maratón de Conocimiento (15 ejercicios)
- Constancia Científica (5 días racha)
- Ascenso Semanal (500 XP)
- Explorador Curioso (3 módulos)
- Semana de Excelencia (5 perfectos)
special:
- Dominio del Módulo (completar módulo 80%)
- Estratega Sabio (3 comodines)
target_types:
- complete_exercises
- correct_streak
- earn_xp
- perfect_scores
- daily_streak
- explore_modules
- complete_modules
- use_comodines
uuids: '20000001-0000-0000-0000-00000000000N'
dependencias: []
estado: activo
audit: AUDIT-DB-001-P0
fecha_creacion: '2025-12-14'
# ===========================================================================
# LTI INTEGRATION
# ===========================================================================
lti_integration:
archivos: 1
seeds:
- nombre: 01-lti_consumers.sql
descripcion: Consumidores LTI (LMS externos)
tablas:
- lti_consumers
registros: 2-3
consumers:
- Moodle Demo
- Canvas Demo
dependencias: []
estado: activo
# ===========================================================================
# PROGRESS TRACKING
# ===========================================================================
progress_tracking:
archivos: 1
seeds:
- nombre: 01-module_progress.sql
descripcion: Progreso inicial de módulos
tablas:
- module_progress
registros: 5-10
dependencias:
- educational_content.modules
- auth.users
estado: activo
# ===========================================================================
# SOCIAL FEATURES (SIMPLIFICADO 2025-12-15)
# ===========================================================================
social_features:
archivos: 4
version: 3.0.0
fecha_simplificacion: '2025-12-15'
nota_arquitectura: |
DECISIÓN DE DISEÑO (2025-12-15):
Solo entidades DEFAULT del sistema. El admin crea otras desde UI.
- 1 escuela (SYSTEM-UNASSIGNED)
- 1 classroom (DEFAULT)
- Trigger automático asigna estudiantes nuevos al DEFAULT
seeds:
- nombre: 00-schools-default.sql
descripcion: Escuela del sistema para usuarios pendientes de asignación
tablas:
- schools
registros: 1
version: 1.0.0
escuelas:
- name: Sistema - Por Asignar
code: SYSTEM-UNASSIGNED
uuid: '99999999-9999-9999-9999-999999999999'
is_default: true
dependencias:
- auth_management.tenants
estado: activo
created: '2025-12-15'
notas: |
Escuela default ÚNICA del sistema.
Todos los usuarios se asignan aquí automáticamente.
- nombre: 01-schools.sql
descripcion: NO-OP - Solo verificación (escuelas demo removidas)
tablas:
- schools (solo verificación, sin INSERTs)
registros: 0
version: 3.0.0
escuelas_removidas:
- Escuela Primaria Marie Curie (CDMX)
- Instituto de Educación Integral (Guadalajara)
dependencias:
- 00-schools-default.sql
estado: activo
notas: |
Archivo sin INSERTs desde v3.0.
Las escuelas adicionales se crean desde UI por el admin.
- nombre: 02-classrooms.sql
descripcion: SOLO classroom DEFAULT para asignación automática
tablas:
- classrooms
registros: 1
version: 3.0.0
classrooms:
- name: Sin Asignar - Aula Default
code: DEFAULT
uuid: '00000000-0000-0000-0000-000000000001'
school_code: SYSTEM-UNASSIGNED
is_default: true
metadata:
is_default: true
system_classroom: true
auto_assignment: true
classrooms_removidos:
- 5to A - Comprensión Lectora (Marie Curie)
- 5to B - Lectura Digital (Marie Curie)
- 6to A - Producción de Textos (Marie Curie)
- Aula de Pruebas - Todos los Niveles (IEI)
- Demo Parent Portal - 4to A (IEI)
dependencias:
- social_features.schools (SYSTEM-UNASSIGNED)
- auth_management.profiles (teacher default)
estado: activo
notas: |
Solo classroom DEFAULT desde v3.0.
Los classrooms adicionales se crean desde UI por el admin.
- nombre: 03-classroom-members.sql
descripcion: Asignar TODOS los estudiantes al classroom DEFAULT
tablas:
- classroom_members
registros: dinamico (todos los estudiantes)
version: 3.0.0
enrollment_method: admin_add
logica: |
INSERT SELECT de auth_management.profiles WHERE role='student'
Asigna automáticamente a classroom DEFAULT.
ON CONFLICT: actualiza metadata y updated_at.
dependencias:
- social_features.classrooms (DEFAULT)
- auth_management.profiles (role='student')
estado: activo
notas: |
Todos los estudiantes van al DEFAULT automáticamente.
El admin/teacher puede reasignarlos desde la UI.
# ===========================================================================
# SYSTEM CONFIGURATION
# ===========================================================================
system_configuration:
archivos: 4
seeds:
- nombre: 01-system_settings.sql
descripcion: Configuración del sistema
tablas:
- system_settings
registros: 10-15
configuraciones:
- Límites de intentos
- Timeouts
- Notificaciones
dependencias: []
estado: activo
- nombre: 02-feature_flags.sql
descripcion: Feature flags del sistema
tablas:
- feature_flags
registros: 10-20
features:
- Gamificación
- Misiones
- Colaboración
dependencias: []
estado: activo
- nombre: 03-notification_settings_global.sql
descripcion: Configuración global de notificaciones
tablas:
- notification_settings_global
registros: 5-10
dependencias: []
estado: activo
- nombre: 04-rate_limits.sql
descripcion: Límites de tasa (rate limiting)
tablas:
- rate_limits
registros: 5-10
limites:
- API requests
- Intentos de login
- Submissions
dependencias: []
estado: activo
# =============================================================================
# DESARROLLO (DEV SEEDS)
# =============================================================================
desarrollo:
ubicacion: apps/database/seeds/dev/
total_archivos: 34
total_ejercicios: 24
completitud: 100%
alineacion_con_prod: 100%
nota: Seeds DEV alineados completamente con PROD tras migración Fase 1
diferencias_con_prod:
adicionales_dev:
- Más usuarios de testing
- Datos de auditoría de ejemplo
- Intentos de ejercicios de prueba
- Métricas de sistema de ejemplo
cobertura:
ejercicios_dev: 24
ejercicios_prod: 23
diferencia: +1 (ejercicio extra de testing en DEV)
schemas:
audit_logging:
archivos: 2
adicional_vs_prod:
- 01-audit-logs.sql (logs de ejemplo)
- 02-system-metrics.sql (métricas de prueba)
auth:
archivos: 2
adicional_vs_prod:
- 02-test-users.sql (usuarios adicionales de testing)
auth_management:
archivos: 7
adicional_vs_prod:
- 04-user_roles.sql
- 05-user_preferences.sql
- 06-auth_attempts.sql
- 07-security_events.sql
content_management:
archivos: 3
adicional_vs_prod:
- 02-media-files.sql
- 03-tags.sql
educational_content:
archivos: 7
nota: Idénticos a PROD (01-06) más rúbricas
seeds:
- 01-modules.sql
- 02-exercises-module1.sql
- 03-exercises-module2.sql
- 04-exercises-module3.sql
- 05-exercises-module4.sql
- 06-exercises-module5.sql (835 líneas, expandido Fase 1)
- 07-assessment-rubrics.sql
gamification_system:
archivos: 5
reducido_vs_prod: Menos seeds inicializados (solo estructura)
progress_tracking:
archivos: 2
adicional_vs_prod:
- 02-exercise-attempts.sql (intentos de ejemplo)
social_features:
archivos: 4
adicional_vs_prod:
- 04-teams.sql (equipos de ejemplo)
system_configuration:
archivos: 2
reducido_vs_prod: Configuración mínima de desarrollo
# =============================================================================
# ESTADÍSTICAS Y MÉTRICAS
# =============================================================================
metricas:
cobertura_ejercicios:
total_mecanicas_definidas: 27
mecanicas_con_seeds_prod: 23
porcentaje_cobertura: 85%
mecanicas_faltantes:
- Algunas mecánicas avanzadas aún sin seeds
modelo_datos:
estrategia: JSONB puro
ventajas:
- Flexibilidad para 27+ mecánicas
- Sin necesidad de JOINs complejos
- Fácil extensión
- Frontend consume directamente
- Backend mapea a entities
decisiones_arquitectonicas:
- Eliminación modelo dual (2025-11-11)
- Consolidación en JSONB
- Tablas legacy deprecated
calidad_seeds:
prod_completitud: 100%
prod_production_ready: true
dev_completitud: 100%
alineacion_dev_prod: 100%
estructura_jsonb_completa: true
validacion: pendiente (Fase 5)
mantenimiento:
ultima_migracion: '2025-11-11 (Fase 1)'
proxima_validacion: '2025-11-11 (Fase 5)'
esquema_versionado: true
deprecacion_controlada: true
# =============================================================================
# DEPENDENCIAS ENTRE SEEDS
# =============================================================================
grafo_dependencias:
orden_carga_produccion:
fase_1_sin_dependencias:
- system_configuration/*
- audit_logging/*
fase_2_auth:
- auth/01-demo-users.sql
- auth_management/01-tenants.sql
- auth_management/02-auth_providers.sql
fase_3_perfiles:
- auth_management/04-profiles-complete.sql
fase_4_contenido:
- educational_content/01-modules.sql
- educational_content/02-exercises-module1.sql
- educational_content/03-exercises-module2.sql
- educational_content/04-exercises-module3.sql
- educational_content/05-exercises-module4.sql
- educational_content/06-exercises-module5.sql
- educational_content/07-assessment-rubrics.sql
- educational_content/08-difficulty_criteria.sql
fase_5_gamificacion:
- gamification_system/01-achievement_categories.sql
- gamification_system/02-leaderboard_metadata.sql
- gamification_system/03-maya_ranks.sql
- gamification_system/04-achievements.sql
- gamification_system/05-user_stats.sql
- gamification_system/06-user_ranks.sql
- gamification_system/07-ml_coins_transactions.sql
- gamification_system/08-user_achievements.sql
- gamification_system/09-comodines_inventory.sql
fase_6_social:
- social_features/01-schools.sql
- social_features/02-classrooms.sql
- social_features/03-classroom-members.sql
fase_7_otros:
- content_management/01-default-templates.sql
- lti_integration/01-lti_consumers.sql
- progress_tracking/01-module_progress.sql
# =============================================================================
# CHANGELOG
# =============================================================================
changelog:
- fecha: '2025-12-15'
version: 3.0.0
fase: Simplificación Estructura - Solo Defaults
cambios:
- social_features/01-schools.sql vaciado (escuelas demo removidas)
- social_features/02-classrooms.sql simplificado (solo DEFAULT)
- social_features/03-classroom-members.sql simplificado (todos → DEFAULT)
- auth_management/08-assign-admin-schools.sql expandido (TODOS usuarios)
entidades_eliminadas:
- Escuela Primaria Marie Curie (CDMX)
- Instituto de Educación Integral (Guadalajara)
- 5 aulas demo (5to A, 5to B, 6to A, Pruebas, Parent Portal)
decision_arquitectonica: |
Solo entidades DEFAULT del sistema. El admin crea otras desde UI.
Trigger trg_assign_default_classroom asigna automáticamente.
impacto: |
- 1 escuela (SYSTEM-UNASSIGNED) en lugar de 3
- 1 classroom (DEFAULT) en lugar de 6
- Todos los usuarios con school_id garantizado
- Integridad referencial mejorada
correcciones_menores:
- enrollment_method cambiado de 'auto_assignment' a 'admin_add'
- fecha: '2025-11-21'
version: 2.1.0
fase: Alineación Módulo 3 con Doc v6.3
cambios:
- Tribunal de Opiniones (3.1) - PROD actualizado a formato statements
- Debate Digital (3.2) - Tema actualizado sobre fama de Marie Curie
- Matriz de Perspectivas (3.5) - Perspectivas 5-6 actualizadas (Marie y Pierre Curie)
impacto: Módulo 3 100% alineado con DocumentoDeDiseño_Mecanicas_GAMILIT_v6_1.md
referencia: DB-127
- fecha: '2025-11-11'
version: 2.0.0
fase: Fase 1 - Correcciones P0
cambios:
- Module 5 expandido (97 → 835 líneas, +861%)
- Migración completa seeds DEV → PROD (27 ejercicios)
- Eliminación modelo dual (JSONB puro)
- Creación 02-06-exercises-module[1-5].sql
- Deprecación 02/03-exercises-{demo,complete}.sql
- Deprecación 06-exercise-answers.sql
- Actualización create-database.sh
impacto: Seeds PROD 100% production-ready
- fecha: '2025-11-08'
version: 1.5.0
cambios:
- Corrección seeds 03-exercises-complete v3.0
- Corrección 06-exercise-answers v2.0
- Deprecación 04/05 (mechanics/options)
- fecha: '2025-11-07'
version: 1.0.0
cambios:
- Estructura inicial de seeds
- Seeds básicos de módulos
- Seeds iniciales de ejercicios