-- =====================================================
-- Migration: Add Pedagogical Content Columns to Exercises
-- Task: DB-125
-- Date: 2025-11-19
-- Description: Agrega 4 columnas TEXT para contenido pedagógico expandido
-- Scope: 15 ejercicios en módulos 1-3 (módulos 4-5 pendientes en DB-126)
-- Author: Database Agent
-- =====================================================

SET search_path TO educational_content, public;

-- Verificar que estamos en el schema correcto
DO $$
BEGIN
    IF NOT EXISTS (
        SELECT 1 FROM information_schema.tables
        WHERE table_schema = 'educational_content'
          AND table_name = 'exercises'
    ) THEN
        RAISE EXCEPTION 'Tabla educational_content.exercises no encontrada';
    END IF;
END $$;

-- Agregar columnas (idempotente con IF NOT EXISTS)
ALTER TABLE educational_content.exercises
ADD COLUMN IF NOT EXISTS objective TEXT,
ADD COLUMN IF NOT EXISTS how_to_solve TEXT,
ADD COLUMN IF NOT EXISTS recommended_strategy TEXT,
ADD COLUMN IF NOT EXISTS pedagogical_notes TEXT;

-- Agregar comentarios (siempre se ejecutan)
COMMENT ON COLUMN educational_content.exercises.objective IS
'Objetivo pedagógico expandido del ejercicio (200-500 palabras). Describe qué aprenderá el estudiante y por qué es importante según el modelo de comprensión lectora de Daniel Cassany.';

COMMENT ON COLUMN educational_content.exercises.how_to_solve IS
'Guía detallada de cómo resolver el ejercicio (300-800 palabras). Pasos pedagógicos, estrategias de pensamiento, y consejos para completar exitosamente el ejercicio.';

COMMENT ON COLUMN educational_content.exercises.recommended_strategy IS
'Estrategias recomendadas para resolver eficientemente (100-300 palabras). Tips, trucos, y mejores prácticas para estudiantes.';

COMMENT ON COLUMN educational_content.exercises.pedagogical_notes IS
'Notas metodológicas para educadores (100-400 palabras). Contexto pedagógico, relación con competencias, y alineación con modelo Cassany.';

-- Validación post-migration
DO $$
DECLARE
    col_count INTEGER;
BEGIN
    SELECT COUNT(*)
    INTO col_count
    FROM information_schema.columns
    WHERE table_schema = 'educational_content'
      AND table_name = 'exercises'
      AND column_name IN ('objective', 'how_to_solve', 'recommended_strategy', 'pedagogical_notes');

    IF col_count = 4 THEN
        RAISE NOTICE '✓ Migration DB-125 successful: 4 pedagogical columns added to exercises table';
    ELSE
        RAISE EXCEPTION '✗ Migration DB-125 failed: Expected 4 columns, found %', col_count;
    END IF;
END $$;
