Structure: - control-plane/: Registries, SIMCO directives, CI/CD templates - projects/: Gamilit, ERP-Suite, Trading-Platform, Betting-Analytics - shared/: Libs catalog, knowledge-base Key features: - Centralized port, domain, database, and service registries - 23 SIMCO directives + 6 fundamental principles - NEXUS agent profiles with delegation rules - Validation scripts for workspace integrity - Dockerfiles for all services - Path aliases for quick reference 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
350 lines
11 KiB
SQL
350 lines
11 KiB
SQL
-- =====================================================================
|
|
-- Archivo: 02-classrooms.sql
|
|
-- Schema: social_features
|
|
-- Descripción: Seeds de aulas/grupos para las escuelas
|
|
-- Dependencias: 01-schools.sql, auth.users
|
|
-- Autor: SA-SEEDS-SOCIAL
|
|
-- Fecha: 2025-11-02
|
|
-- =====================================================================
|
|
|
|
SET search_path TO social_features, auth, public;
|
|
|
|
-- =====================================================================
|
|
-- CLASSROOMS: Aulas/grupos distribuidos por escuelas
|
|
-- =====================================================================
|
|
|
|
DO $$
|
|
DECLARE
|
|
school_sf15 UUID;
|
|
school_st42 UUID;
|
|
school_einstein UUID;
|
|
teacher_id UUID;
|
|
BEGIN
|
|
-- =====================================================================
|
|
-- Obtener school IDs dinámicamente
|
|
-- =====================================================================
|
|
SELECT school_id INTO school_sf15
|
|
FROM social_features.schools
|
|
WHERE school_code = 'SF-015-CDMX';
|
|
|
|
SELECT school_id INTO school_st42
|
|
FROM social_features.schools
|
|
WHERE school_code = 'ST-042-NL';
|
|
|
|
SELECT school_id INTO school_einstein
|
|
FROM social_features.schools
|
|
WHERE school_code = 'CP-AE-JAL';
|
|
|
|
-- =====================================================================
|
|
-- Obtener instructor demo
|
|
-- =====================================================================
|
|
SELECT user_id INTO teacher_id
|
|
FROM auth.users
|
|
WHERE email = 'instructor@demo.glit.edu.mx';
|
|
|
|
-- Validar que exista el instructor
|
|
IF teacher_id IS NULL THEN
|
|
RAISE EXCEPTION 'No se encontró el instructor demo. Ejecutar seeds de auth primero.';
|
|
END IF;
|
|
|
|
-- =====================================================================
|
|
-- AULAS PARA SECUNDARIA FEDERAL 15 (CDMX)
|
|
-- =====================================================================
|
|
|
|
-- Aula 1: 2° A - Comprensión Lectora
|
|
INSERT INTO social_features.classrooms (
|
|
school_id, teacher_id,
|
|
name, code, grade_level, section,
|
|
subject, description,
|
|
capacity, current_students_count,
|
|
start_date, end_date,
|
|
schedule, is_active, is_active,
|
|
settings, created_at, updated_at
|
|
) VALUES
|
|
(
|
|
school_sf15,
|
|
teacher_id,
|
|
'2° A - Comprensión Lectora',
|
|
'2A-LECT-2025',
|
|
'2',
|
|
'A',
|
|
'Comprensión Lectora',
|
|
'Grupo de segundo año, sección A. Enfoque en desarrollo de competencias lectoras con metodología GLIT. Estrategias de lectura crítica y análisis textual.',
|
|
35,
|
|
0,
|
|
'2025-08-15',
|
|
'2026-07-15',
|
|
'{
|
|
"days": ["Lunes", "Miércoles", "Viernes"],
|
|
"time": "08:00-09:00",
|
|
"room": "Aula 201",
|
|
"weekly_hours": 3
|
|
}'::jsonb,
|
|
'active',
|
|
true,
|
|
'{
|
|
"allow_student_self_enrollment": false,
|
|
"enable_gamification": true,
|
|
"require_parental_consent": true,
|
|
"grading_system": "numerical",
|
|
"attendance_required": true,
|
|
"homework_policy": {
|
|
"frequency": "weekly",
|
|
"submission_platform": "glit"
|
|
}
|
|
}'::jsonb,
|
|
NOW(),
|
|
NOW()
|
|
),
|
|
|
|
-- Aula 2: 3° B - Lectura Digital
|
|
(
|
|
school_sf15,
|
|
teacher_id,
|
|
'3° B - Lectura Digital',
|
|
'3B-DIGI-2025',
|
|
'3',
|
|
'B',
|
|
'Lectura Digital',
|
|
'Grupo de tercer año, sección B. Especialización en alfabetización digital, fact-checking y análisis crítico de medios digitales.',
|
|
35,
|
|
0,
|
|
'2025-08-15',
|
|
'2026-07-15',
|
|
'{
|
|
"days": ["Martes", "Jueves"],
|
|
"time": "10:00-11:30",
|
|
"room": "Laboratorio de Cómputo",
|
|
"weekly_hours": 3
|
|
}'::jsonb,
|
|
'active',
|
|
true,
|
|
'{
|
|
"allow_student_self_enrollment": false,
|
|
"enable_gamification": true,
|
|
"require_parental_consent": true,
|
|
"grading_system": "numerical",
|
|
"attendance_required": true,
|
|
"digital_literacy_focus": true,
|
|
"tools_used": ["GLIT", "Google Classroom", "Canva"]
|
|
}'::jsonb,
|
|
NOW(),
|
|
NOW()
|
|
),
|
|
|
|
-- Aula 3: 1° C - Lectura Básica
|
|
(
|
|
school_sf15,
|
|
teacher_id,
|
|
'1° C - Lectura Básica',
|
|
'1C-BASIC-2025',
|
|
'1',
|
|
'C',
|
|
'Lectura Básica',
|
|
'Primer año, sección C. Fundamentos de comprensión lectora y desarrollo de habilidades básicas.',
|
|
35,
|
|
0,
|
|
'2025-08-15',
|
|
'2026-07-15',
|
|
'{
|
|
"days": ["Lunes", "Miércoles", "Viernes"],
|
|
"time": "11:00-12:00",
|
|
"room": "Aula 105",
|
|
"weekly_hours": 3
|
|
}'::jsonb,
|
|
'active',
|
|
true,
|
|
'{
|
|
"allow_student_self_enrollment": false,
|
|
"enable_gamification": true,
|
|
"require_parental_consent": true,
|
|
"grading_system": "numerical",
|
|
"attendance_required": true,
|
|
"foundational_skills": true
|
|
}'::jsonb,
|
|
NOW(),
|
|
NOW()
|
|
),
|
|
|
|
-- =====================================================================
|
|
-- AULAS PARA SECUNDARIA TÉCNICA 42 (MONTERREY)
|
|
-- =====================================================================
|
|
|
|
-- Aula 4: 1° A - Introducción a la Lectura
|
|
(
|
|
school_st42,
|
|
teacher_id,
|
|
'1° A - Introducción a la Lectura',
|
|
'1A-INTRO-2025',
|
|
'1',
|
|
'A',
|
|
'Introducción a la Lectura',
|
|
'Primer año. Desarrollo de habilidades básicas de comprensión lectora con enfoque técnico y práctico.',
|
|
30,
|
|
0,
|
|
'2025-08-15',
|
|
'2026-07-15',
|
|
'{
|
|
"days": ["Lunes", "Miércoles", "Viernes"],
|
|
"time": "14:00-15:00",
|
|
"room": "Aula 105",
|
|
"weekly_hours": 3,
|
|
"shift": "vespertino"
|
|
}'::jsonb,
|
|
'active',
|
|
true,
|
|
'{
|
|
"allow_student_self_enrollment": false,
|
|
"enable_gamification": true,
|
|
"require_parental_consent": true,
|
|
"grading_system": "numerical",
|
|
"technical_reading_focus": true
|
|
}'::jsonb,
|
|
NOW(),
|
|
NOW()
|
|
),
|
|
|
|
-- Aula 5: 2° B - Lectura Técnica
|
|
(
|
|
school_st42,
|
|
teacher_id,
|
|
'2° B - Lectura Técnica',
|
|
'2B-TECH-2025',
|
|
'2',
|
|
'B',
|
|
'Lectura Técnica',
|
|
'Segundo año. Comprensión de textos técnicos, manuales y documentación especializada.',
|
|
30,
|
|
0,
|
|
'2025-08-15',
|
|
'2026-07-15',
|
|
'{
|
|
"days": ["Martes", "Jueves"],
|
|
"time": "15:00-16:30",
|
|
"room": "Taller de Computación",
|
|
"weekly_hours": 3,
|
|
"shift": "vespertino"
|
|
}'::jsonb,
|
|
'active',
|
|
true,
|
|
'{
|
|
"allow_student_self_enrollment": false,
|
|
"enable_gamification": true,
|
|
"technical_manuals": true,
|
|
"industry_standards": ["ISO", "IEEE"]
|
|
}'::jsonb,
|
|
NOW(),
|
|
NOW()
|
|
),
|
|
|
|
-- =====================================================================
|
|
-- AULAS PARA COLEGIO EINSTEIN (GUADALAJARA)
|
|
-- =====================================================================
|
|
|
|
-- Aula 6: 2° STEAM - Literatura Científica
|
|
(
|
|
school_einstein,
|
|
teacher_id,
|
|
'2° STEAM - Literatura Científica',
|
|
'2ST-LITC-2025',
|
|
'2',
|
|
'STEAM',
|
|
'Literatura Científica',
|
|
'Grupo STEAM. Integración de literatura y ciencias mediante biografías de científicos, ensayos y divulgación científica.',
|
|
25,
|
|
0,
|
|
'2025-08-15',
|
|
'2026-06-30',
|
|
'{
|
|
"days": ["Lunes", "Miércoles", "Viernes"],
|
|
"time": "09:00-10:30",
|
|
"room": "Aula STEAM 3",
|
|
"language": "Español/Inglés",
|
|
"weekly_hours": 4
|
|
}'::jsonb,
|
|
'active',
|
|
true,
|
|
'{
|
|
"allow_student_self_enrollment": false,
|
|
"enable_gamification": true,
|
|
"require_parental_consent": false,
|
|
"bilingual": true,
|
|
"grading_system": "cambridge",
|
|
"steam_integration": true,
|
|
"project_based_learning": true
|
|
}'::jsonb,
|
|
NOW(),
|
|
NOW()
|
|
),
|
|
|
|
-- Aula 7: 3° Advanced - Critical Reading (Bilingüe)
|
|
(
|
|
school_einstein,
|
|
teacher_id,
|
|
'3° Advanced - Critical Reading',
|
|
'3ADV-CRIT-2025',
|
|
'3',
|
|
'Advanced',
|
|
'Critical Reading',
|
|
'Tercer año avanzado. Lectura crítica en inglés y español con análisis de textos complejos y retórica.',
|
|
25,
|
|
0,
|
|
'2025-08-15',
|
|
'2026-06-30',
|
|
'{
|
|
"days": ["Martes", "Jueves"],
|
|
"time": "11:00-12:30",
|
|
"room": "Innovation Hub",
|
|
"language": "English/Spanish",
|
|
"weekly_hours": 3
|
|
}'::jsonb,
|
|
'active',
|
|
true,
|
|
'{
|
|
"allow_student_self_enrollment": false,
|
|
"enable_gamification": true,
|
|
"bilingual": true,
|
|
"grading_system": "cambridge",
|
|
"advanced_placement": true,
|
|
"college_prep": true,
|
|
"debate_integration": true
|
|
}'::jsonb,
|
|
NOW(),
|
|
NOW()
|
|
)
|
|
ON CONFLICT (school_id, code) DO UPDATE SET
|
|
name = EXCLUDED.name,
|
|
current_students_count = EXCLUDED.current_students_count,
|
|
schedule = EXCLUDED.schedule,
|
|
settings = EXCLUDED.settings,
|
|
updated_at = NOW();
|
|
|
|
-- =====================================================================
|
|
-- SYNC teacher_classrooms (many-to-many)
|
|
-- =====================================================================
|
|
-- Asegurar que todos los classrooms tienen su entrada en teacher_classrooms
|
|
-- Esto es necesario porque algunos servicios usan classrooms.teacher_id
|
|
-- y otros usan la tabla teacher_classrooms
|
|
-- =====================================================================
|
|
INSERT INTO social_features.teacher_classrooms (id, teacher_id, classroom_id, tenant_id, role, assigned_at, created_at)
|
|
SELECT
|
|
gen_random_uuid(),
|
|
c.teacher_id,
|
|
c.id,
|
|
c.tenant_id,
|
|
'owner',
|
|
c.created_at,
|
|
NOW()
|
|
FROM social_features.classrooms c
|
|
WHERE c.teacher_id IS NOT NULL
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- =====================================================================
|
|
-- Verificación de inserción
|
|
-- =====================================================================
|
|
RAISE NOTICE 'Aulas creadas exitosamente para 3 escuelas';
|
|
RAISE NOTICE 'SF-015-CDMX: 3 aulas | ST-042-NL: 2 aulas | CP-AE-JAL: 2 aulas';
|
|
RAISE NOTICE 'Sincronización teacher_classrooms ejecutada';
|
|
|
|
END $$;
|