-- ===================================================== -- SEED DATA - Schema Education (EJEMPLO) -- ===================================================== -- Proyecto: OrbiQuant IA (Trading Platform) -- Módulo: OQI-002 - Education -- Especificación: ET-EDU-001-database.md -- ===================================================== -- NOTA: Este es un archivo de ejemplo. -- Los datos reales deben ir en /apps/database/seeds/ -- ===================================================== BEGIN; -- ===================================================== -- 1. CATEGORIES -- ===================================================== INSERT INTO education.categories (id, name, slug, description, color, display_order, is_active) VALUES ('11111111-1111-1111-1111-111111111111', 'Trading Básico', 'trading-basico', 'Fundamentos del trading y mercados financieros', '#3B82F6', 1, true), ('22222222-2222-2222-2222-222222222222', 'Análisis Técnico', 'analisis-tecnico', 'Herramientas y técnicas de análisis técnico', '#10B981', 2, true), ('33333333-3333-3333-3333-333333333333', 'Análisis Fundamental', 'analisis-fundamental', 'Evaluación fundamental de activos', '#F59E0B', 3, true), ('44444444-4444-4444-4444-444444444444', 'Gestión de Riesgo', 'gestion-riesgo', 'Estrategias de gestión de riesgo y capital', '#EF4444', 4, true), ('55555555-5555-5555-5555-555555555555', 'Trading Algorítmico', 'trading-algoritmico', 'Automatización y estrategias algorítmicas', '#8B5CF6', 5, true), ('66666666-6666-6666-6666-666666666666', 'Psicología del Trading', 'psicologia-trading', 'Aspectos psicológicos y emocionales del trading', '#EC4899', 6, true); -- ===================================================== -- 2. COURSES -- ===================================================== -- NOTA: instructor_id debe existir en auth.users -- Para este ejemplo, usar un UUID válido de tu sistema INSERT INTO education.courses ( id, title, slug, short_description, full_description, category_id, difficulty_level, instructor_id, instructor_name, is_free, xp_reward, status, published_at, total_modules, total_lessons ) VALUES ( 'c1111111-1111-1111-1111-111111111111', 'Introducción al Trading', 'introduccion-trading', 'Aprende los conceptos básicos del trading desde cero', 'Este curso te enseñará los fundamentos del trading, incluyendo tipos de mercados, instrumentos financieros, y cómo realizar tus primeras operaciones de forma segura.', '11111111-1111-1111-1111-111111111111', 'beginner', '00000000-0000-0000-0000-000000000001', -- Reemplazar con ID real 'Instructor Demo', true, 500, 'published', NOW(), 3, 12 ); -- ===================================================== -- 3. MODULES -- ===================================================== INSERT INTO education.modules (id, course_id, title, description, display_order, duration_minutes) VALUES ('m1111111-1111-1111-1111-111111111111', 'c1111111-1111-1111-1111-111111111111', 'Módulo 1: Fundamentos', 'Conceptos básicos del trading', 1, 120), ('m2222222-2222-2222-2222-222222222222', 'c1111111-1111-1111-1111-111111111111', 'Módulo 2: Mercados Financieros', 'Tipos de mercados y activos', 2, 180), ('m3333333-3333-3333-3333-333333333333', 'c1111111-1111-1111-1111-111111111111', 'Módulo 3: Primeros Pasos', 'Cómo empezar a operar', 3, 150); -- ===================================================== -- 4. LESSONS -- ===================================================== INSERT INTO education.lessons ( id, module_id, title, description, content_type, video_url, video_duration_seconds, display_order, is_preview, xp_reward ) VALUES ( 'l1111111-1111-1111-1111-111111111111', 'm1111111-1111-1111-1111-111111111111', '¿Qué es el Trading?', 'Introducción a los conceptos básicos del trading', 'video', 'https://example.com/videos/lesson-1.mp4', 900, 1, true, 10 ), ( 'l2222222-2222-2222-2222-222222222222', 'm1111111-1111-1111-1111-111111111111', 'Tipos de Traders', 'Conoce los diferentes estilos de trading', 'video', 'https://example.com/videos/lesson-2.mp4', 1200, 2, false, 10 ), ( 'l3333333-3333-3333-3333-333333333333', 'm1111111-1111-1111-1111-111111111111', 'Terminología Básica', 'Vocabulario esencial del trading', 'article', NULL, NULL, 3, false, 15 ); -- ===================================================== -- 5. QUIZZES -- ===================================================== INSERT INTO education.quizzes ( id, module_id, title, description, passing_score_percentage, max_attempts, xp_reward, xp_perfect_score_bonus ) VALUES ( 'q1111111-1111-1111-1111-111111111111', 'm1111111-1111-1111-1111-111111111111', 'Quiz: Fundamentos del Trading', 'Evalúa tus conocimientos sobre los conceptos básicos', 70, 3, 50, 20 ); -- ===================================================== -- 6. QUIZ QUESTIONS -- ===================================================== INSERT INTO education.quiz_questions ( id, quiz_id, question_text, question_type, options, explanation, points, display_order ) VALUES ( 'qq111111-1111-1111-1111-111111111111', 'q1111111-1111-1111-1111-111111111111', '¿Qué es el trading?', 'multiple_choice', '[ {"id": "a", "text": "Comprar y vender activos financieros", "isCorrect": true}, {"id": "b", "text": "Solo comprar acciones", "isCorrect": false}, {"id": "c", "text": "Invertir a largo plazo únicamente", "isCorrect": false}, {"id": "d", "text": "Ahorrar dinero en un banco", "isCorrect": false} ]'::jsonb, 'El trading implica la compra y venta de activos financieros con el objetivo de obtener ganancias a corto o mediano plazo.', 1, 1 ), ( 'qq222222-2222-2222-2222-222222222222', 'q1111111-1111-1111-1111-111111111111', '¿El trading es una actividad de riesgo?', 'true_false', '[ {"id": "true", "text": "Verdadero", "isCorrect": true}, {"id": "false", "text": "Falso", "isCorrect": false} ]'::jsonb, 'Sí, el trading es una actividad que conlleva riesgos y es posible perder dinero. Por eso es importante la gestión de riesgo.', 1, 2 ); -- ===================================================== -- EJEMPLO DE USO - ENROLLMENTS -- ===================================================== -- NOTA: Estos son ejemplos comentados. NO ejecutar sin IDs reales. /* -- Enrollar un usuario a un curso INSERT INTO education.enrollments (user_id, course_id, total_lessons) VALUES ( '00000000-0000-0000-0000-000000000001', -- ID del usuario 'c1111111-1111-1111-1111-111111111111', -- ID del curso 12 -- Total de lecciones del curso ); -- Registrar progreso en una lección INSERT INTO education.progress ( user_id, lesson_id, enrollment_id, is_completed, watch_percentage ) VALUES ( '00000000-0000-0000-0000-000000000001', 'l1111111-1111-1111-1111-111111111111', '', true, 100.00 ); */ COMMIT; -- ===================================================== -- Verificación -- ===================================================== SELECT 'Categories created:' as info, COUNT(*) as count FROM education.categories; SELECT 'Courses created:' as info, COUNT(*) as count FROM education.courses; SELECT 'Modules created:' as info, COUNT(*) as count FROM education.modules; SELECT 'Lessons created:' as info, COUNT(*) as count FROM education.lessons; SELECT 'Quizzes created:' as info, COUNT(*) as count FROM education.quizzes; SELECT 'Questions created:' as info, COUNT(*) as count FROM education.quiz_questions;