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