-- Migración: Agregar soft delete a preguntas
-- Fecha: 2025-11-27
-- Descripción: Permite eliminar preguntas sin romper la integridad de respuestas históricas

-- Agregar columna is_deleted a la tabla questions
ALTER TABLE questions ADD COLUMN IF NOT EXISTS is_deleted BOOLEAN DEFAULT FALSE;

-- Agregar columna updated_at si no existe
ALTER TABLE questions ADD COLUMN IF NOT EXISTS updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW();

-- Crear índice para mejorar queries que filtran por is_deleted
CREATE INDEX IF NOT EXISTS idx_questions_is_deleted ON questions(is_deleted);

-- Crear índice compuesto para mejorar queries de preguntas activas por checklist
CREATE INDEX IF NOT EXISTS idx_questions_checklist_active ON questions(checklist_id, is_deleted);

-- Actualizar preguntas existentes como no eliminadas
UPDATE questions SET is_deleted = FALSE WHERE is_deleted IS NULL;

-- Actualizar updated_at en preguntas existentes
UPDATE questions SET updated_at = created_at WHERE updated_at IS NULL;

-- Comentarios en las columnas
COMMENT ON COLUMN questions.is_deleted IS 'Soft delete: marca pregunta como eliminada sin borrarla físicamente, manteniendo integridad de respuestas históricas';
COMMENT ON COLUMN questions.updated_at IS 'Timestamp de última actualización de la pregunta';
