diff --git a/backend/scripts/apply-bisaya-course-refresh.js b/backend/scripts/apply-bisaya-course-refresh.js index 266839f..3d7c7c8 100644 --- a/backend/scripts/apply-bisaya-course-refresh.js +++ b/backend/scripts/apply-bisaya-course-refresh.js @@ -98,21 +98,26 @@ const LESSON_DIDACTICS = { async function resetBisayaProgress(courseIds) { if (courseIds.length === 0) return { lessonProgress: 0, exerciseProgress: 0 }; - const lessonIds = await sequelize.query( - `SELECT id FROM community.vocab_course_lesson WHERE course_id = ANY(:courseIds)`, - { - replacements: { courseIds }, - type: sequelize.QueryTypes.SELECT - } - ); + const lessonIds = await VocabCourseLesson.findAll({ + where: { + courseId: { + [Op.in]: courseIds + } + }, + attributes: ['id'] + }); - const exerciseIds = await sequelize.query( - `SELECT id FROM community.vocab_grammar_exercise WHERE lesson_id = ANY(:lessonIds)`, - { - replacements: { lessonIds: lessonIds.map((row) => row.id) || [0] }, - type: sequelize.QueryTypes.SELECT - } - ); + const numericLessonIds = lessonIds.map((row) => row.id); + const exerciseIds = numericLessonIds.length > 0 + ? await VocabGrammarExercise.findAll({ + where: { + lessonId: { + [Op.in]: numericLessonIds + } + }, + attributes: ['id'] + }) + : []; const deletedLessonProgress = await VocabCourseProgress.destroy({ where: { courseId: { [Op.in]: courseIds } }