-- 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';