import { prisma } from '../src/services/database'; /** * Script pour reset la base de données et supprimer les anciennes données */ async function resetDatabase() { console.log('🗑️ Reset de la base de données...'); console.log('==================================='); try { // Compter les tâches avant suppression const beforeCount = await prisma.task.count(); const manualCount = await prisma.task.count({ where: { source: 'manual' } }); const remindersCount = await prisma.task.count({ where: { source: 'reminders' } }); console.log(`📊 État actuel:`); console.log(` Total: ${beforeCount} tâches`); console.log(` Manuelles: ${manualCount} tâches`); console.log(` Rappels: ${remindersCount} tâches`); console.log(''); // Supprimer toutes les tâches de synchronisation const deletedTasks = await prisma.task.deleteMany({ where: { source: 'reminders' } }); console.log(`✅ Supprimé ${deletedTasks.count} tâches de synchronisation`); // Supprimer les logs de sync const deletedLogs = await prisma.syncLog.deleteMany(); console.log(`✅ Supprimé ${deletedLogs.count} logs de synchronisation`); // Supprimer les tags orphelins (optionnel) const deletedTags = await prisma.tag.deleteMany(); console.log(`✅ Supprimé ${deletedTags.count} tags`); // Compter après nettoyage const afterCount = await prisma.task.count(); console.log(''); console.log('🎉 Base de données nettoyée !'); console.log(`📊 Résultat: ${afterCount} tâches restantes`); // Afficher les tâches restantes if (afterCount > 0) { console.log(''); console.log('📋 Tâches restantes:'); const remainingTasks = await prisma.task.findMany({ include: { taskTags: { include: { tag: true } } }, orderBy: { createdAt: 'desc' } }); remainingTasks.forEach((task, index) => { const statusEmoji = { 'todo': '⏳', 'in_progress': '🔄', 'done': '✅', 'cancelled': '❌' }[task.status] || '❓'; // Utiliser les relations TaskTag const tags = task.taskTags ? task.taskTags.map(tt => tt.tag.name) : []; const tagsStr = tags.length > 0 ? ` [${tags.join(', ')}]` : ''; console.log(` ${index + 1}. ${statusEmoji} ${task.title}${tagsStr}`); }); } } catch (error) { console.error('❌ Erreur lors du reset:', error); throw error; } } // Exécuter le script if (require.main === module) { resetDatabase().then(() => { console.log(''); console.log('✨ Reset terminé avec succès !'); process.exit(0); }).catch((error) => { console.error('💥 Erreur fatale:', error); process.exit(1); }); } export { resetDatabase };