68 lines
2.0 KiB
TypeScript
68 lines
2.0 KiB
TypeScript
// // 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();
|
||
// });
|