import { sequelize } from './sequelize.js'; import Match3UserProgress from '../models/match3/userProgress.js'; /** * Korrigiert alle ungültigen currentLevel-Werte in der Match3-Datenbank */ async function fixMatch3Data() { try { console.log('🔧 Starte Korrektur der Match3-Daten...'); // Finde alle UserProgress-Einträge mit ungültigen currentLevel-Werten const invalidEntries = await Match3UserProgress.findAll({ where: { currentLevel: { [sequelize.Op.or]: [ { [sequelize.Op.lt]: 1 }, { [sequelize.Op.gt]: 1000 } ] } } }); console.log(`📊 Gefunden: ${invalidEntries.length} ungültige Einträge`); if (invalidEntries.length === 0) { console.log('✅ Alle currentLevel-Werte sind bereits korrekt'); return; } // Korrigiere jeden ungültigen Eintrag for (const entry of invalidEntries) { const oldValue = entry.currentLevel; const correctValue = entry.levelsCompleted + 1; console.log(`🔧 Korrigiere User ${entry.userId}: currentLevel ${oldValue} → ${correctValue}`); await entry.update({ currentLevel: correctValue }); } console.log('✅ Alle ungültigen currentLevel-Werte wurden korrigiert'); } catch (error) { console.error('❌ Fehler beim Korrigieren der Match3-Daten:', error); throw error; } } // Führe das Skript aus, wenn es direkt aufgerufen wird if (import.meta.url === `file://${process.argv[1]}`) { fixMatch3Data() .then(() => { console.log('🎯 Match3-Datenkorrektur abgeschlossen'); process.exit(0); }) .catch((error) => { console.error('💥 Match3-Datenkorrektur fehlgeschlagen:', error); process.exit(1); }); } export default fixMatch3Data;