// // src/scripts/init-preferences.ts // import { PrismaClient } from '@prisma/client'; // const prisma = new PrismaClient(); // type UserSummary = { // id: string; // UUID // email: string; // }; // async function main() { // console.log('➡️ Initialisation des préférences utilisateurs…'); // // 1. Récupérer tous les users // const users = (await prisma.users.findMany({ // select: { // id: true, // email: true, // }, // })) as UserSummary[]; // console.log(`➡️ ${users.length} users trouvés dans la DB`); // // 2. Récupérer toutes les préférences existantes // const existingPrefs = await prisma.preferences.findMany({ // select: { // user_id: true, // }, // }); // const userIdsWithPrefs = new Set(existingPrefs.map((p) => p.user_id)); // console.log(`➡️ ${existingPrefs.length} users ont déjà des préférences`); // // 3. Filtrer les users qui n'ont pas encore de preferences // const usersWithoutPrefs = users.filter((u) => !userIdsWithPrefs.has(u.id)); // console.log(`➡️ ${usersWithoutPrefs.length} users n'ont pas encore de préférences`); // if (usersWithoutPrefs.length === 0) { // console.log('✅ Rien à faire, toutes les préférences sont déjà créées.'); // return; // } // // 4. Préparer les entrées pour createMany // const prefsToCreate = usersWithoutPrefs.map((u) => ({ // user_id: u.id, // // tous les autres champs prendront leurs valeurs par défaut (0) // })); // // 5. Insertion en batch // const result = await prisma.preferences.createMany({ // data: prefsToCreate, // skipDuplicates: true, // sécurité si jamais le script est relancé // }); // console.log(`✅ ${result.count} préférences créées dans la DB`); // } // main() // .catch((err) => { // console.error('❌ Erreur pendant l’initialisation des préférences', err); // process.exit(1); // }) // .finally(async () => { // await prisma.$disconnect(); // });