#!/usr/bin/env node
/**
 * Script zum Löschen ALLER "Familienwörter"-Übungen aus Bisaya-Kursen
 * 
 * Verwendung:
 * node backend/scripts/delete-all-family-words-exercises.js
 * 
 * Löscht alle Grammatik-Übungen von "Familienwörter"-Lektionen, um Platz für neue zu schaffen.
 */

import { sequelize } from '../utils/sequelize.js';
import VocabCourseLesson from '../models/community/vocab_course_lesson.js';
import VocabGrammarExercise from '../models/community/vocab_grammar_exercise.js';

async function deleteAllFamilyWordsExercises() {
  await sequelize.authenticate();
  console.log('Datenbankverbindung erfolgreich hergestellt.\n');

  // Finde alle Bisaya-Kurse
  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-Kurse\n`);

  let totalDeleted = 0;
  let totalLessons = 0;

  for (const course of courses) {
    console.log(`📚 Kurs: ${course.title} (ID: ${course.id})`);
    
    // Finde "Familienwörter"-Lektionen
    const lessons = await VocabCourseLesson.findAll({
      where: { 
        courseId: course.id,
        title: 'Familienwörter'
      },
      order: [['lessonNumber', 'ASC']]
    });

    console.log(`   ${lessons.length} "Familienwörter"-Lektionen gefunden`);

    for (const lesson of lessons) {
      // Lösche ALLE bestehenden Übungen
      const deletedCount = await VocabGrammarExercise.destroy({
        where: { lessonId: lesson.id }
      });

      console.log(`   🗑️  Lektion ${lesson.lessonNumber}: "${lesson.title}" - ${deletedCount} Übung(en) gelöscht`);
      totalDeleted += deletedCount;
      totalLessons++;
    }
    
    console.log('');
  }

  console.log(`\n🎉 Zusammenfassung:`);
  console.log(`   ${totalLessons} Lektionen bearbeitet`);
  console.log(`   ${totalDeleted} Übungen gelöscht`);
  console.log(`\n💡 Hinweis: Führe jetzt das update-family-words-exercises.js Script aus, um neue Übungen zu erstellen.`);
}

deleteAllFamilyWordsExercises()
  .then(() => {
    sequelize.close();
    process.exit(0);
  })
  .catch((error) => {
    console.error('❌ Fehler:', error);
    sequelize.close();
    process.exit(1);
  });
