import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); async function syncDays() { console.log('🔄 Démarrage de la synchronisation des jours (UserProgress -> Enrollment)...'); const enrollments = await prisma.enrollment.findMany({ where: { status: 'ACTIVE' }, include: { user: { include: { progress: true } } } }); let updatedCount = 0; for (const enrollment of enrollments) { // Find the corresponding UserProgress for this active track const progress = enrollment.user.progress.find(p => p.trackId === enrollment.trackId); if (progress) { // If UserProgress has a higher internal currentDay than Enrollment, // the scheduler bug affected this user. We need to align Enrollment. // (Note: Since we haven't removed currentDay from UserProgress yet, we can access it via 'any') const progressAny = progress as any; if (progressAny.currentDay && progressAny.currentDay > enrollment.currentDay) { console.log(`➡️ Mise à jour: User ${enrollment.userId} Track ${enrollment.trackId}: Jour ${enrollment.currentDay} -> ${progressAny.currentDay}`); await prisma.enrollment.update({ where: { id: enrollment.id }, data: { currentDay: progressAny.currentDay } }); updatedCount++; } } } console.log(`✅ Synchronisation terminée. ${updatedCount} inscriptions synchronisées.`); } syncDays() .catch(console.error) .finally(() => prisma.$disconnect());