#!/usr/bin/env node /** * Script zum Hinzufügen der Lektionen 9 und 10 (Woche 1 - Wiederholung, Woche 1 - Vokabeltest) * zu bestehenden Bisaya-Kursen, falls diese noch fehlen. * * Verwendung: * node backend/scripts/add-bisaya-week1-lessons.js */ import { sequelize } from '../utils/sequelize.js'; import VocabCourseLesson from '../models/community/vocab_course_lesson.js'; const LESSONS_TO_ADD = [ { lessonNumber: 9, weekNumber: 1, dayNumber: 5, lessonType: 'review', title: 'Woche 1 - Wiederholung', description: 'Wiederhole alle Inhalte der ersten Woche', culturalNotes: 'Wiederholung ist der Schlüssel zum Erfolg!', targetMinutes: 30, targetScorePercent: 80, requiresReview: false }, { lessonNumber: 10, weekNumber: 1, dayNumber: 5, lessonType: 'vocab', title: 'Woche 1 - Vokabeltest', description: 'Teste dein Wissen aus Woche 1', culturalNotes: null, targetMinutes: 15, targetScorePercent: 80, requiresReview: true } ]; async function addBisayaWeek1Lessons() { await sequelize.authenticate(); console.log('Datenbankverbindung erfolgreich hergestellt.\n'); const [bisayaLanguage] = await sequelize.query( `SELECT id FROM community.vocab_language WHERE name = 'Bisaya' LIMIT 1`, { type: sequelize.QueryTypes.SELECT } ); if (!bisayaLanguage) { console.error('❌ Bisaya-Sprache nicht gefunden.'); return; } const courses = await sequelize.query( `SELECT id, title FROM community.vocab_course WHERE language_id = :languageId`, { replacements: { languageId: bisayaLanguage.id }, type: sequelize.QueryTypes.SELECT } ); console.log(`Gefunden: ${courses.length} Bisaya-Kurs(e)\n`); let totalAdded = 0; for (const course of courses) { console.log(`📚 Kurs: ${course.title} (ID: ${course.id})`); for (const lessonData of LESSONS_TO_ADD) { const existing = await VocabCourseLesson.findOne({ where: { courseId: course.id, lessonNumber: lessonData.lessonNumber } }); if (existing) { console.log(` ⏭️ Lektion ${lessonData.lessonNumber}: "${lessonData.title}" - bereits vorhanden`); continue; } await VocabCourseLesson.create({ courseId: course.id, chapterId: null, lessonNumber: lessonData.lessonNumber, title: lessonData.title, description: lessonData.description, weekNumber: lessonData.weekNumber, dayNumber: lessonData.dayNumber, lessonType: lessonData.lessonType, culturalNotes: lessonData.culturalNotes, targetMinutes: lessonData.targetMinutes, targetScorePercent: lessonData.targetScorePercent, requiresReview: lessonData.requiresReview }); console.log(` ✅ Lektion ${lessonData.lessonNumber}: "${lessonData.title}" hinzugefügt`); totalAdded++; } console.log(''); } console.log(`\n🎉 Fertig! ${totalAdded} Lektion(en) hinzugefügt.`); console.log('💡 Führe danach create-bisaya-course-content.js aus, um die Übungen zu erstellen.'); } addBisayaWeek1Lessons() .then(() => { sequelize.close(); process.exit(0); }) .catch((error) => { console.error('❌ Fehler:', error); sequelize.close(); process.exit(1); });