![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/lavocat.quebec/public_html/prisma/ |
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
const facilities = [
{ id: 'Amos', name: 'Établissement de détention d\'Amos', shortName: 'E.D. d\'Amos' },
{ id: 'Rimouski', name: 'Établissement de détention de Rimouski', shortName: 'E.D. de Rimouski' },
{ id: 'QuébecF', name: 'Établissement de détention de Québec – secteur féminin', shortName: 'E.D. de Québec – F' },
{ id: 'QuébecM', name: 'Établissement de détention de Québec – secteur masculin', shortName: 'E.D. de Québec – M' },
{ id: 'Baie-Comeau', name: 'Établissement de détention de Baie-Comeau', shortName: 'E.D. de Baie-Comeau' },
{ id: 'Sept-Îles', name: 'Établissement de détention de Sept-Îles', shortName: 'E.D. de Sept-Îles' },
{ id: 'Sherbrooke', name: 'Établissement de détention de Sherbrooke', shortName: 'E.D. de Sherbrooke' },
{ id: 'New Carlisle', name: 'Établissement de détention de New Carlisle', shortName: 'E.D. de New Carlisle' },
{ id: 'Percé', name: 'Établissement de détention de Percé', shortName: 'E.D. de Percé' },
{ id: 'Havre-Aubert', name: 'Établissement de détention de Havre-Aubert', shortName: 'E.D. de Havre-Aubert' },
{ id: 'Hull', name: 'Établissement de détention de Hull', shortName: 'E.D. de Hull' },
{ id: 'Saint-Jérôme', name: 'Établissement de détention de Saint-Jérôme', shortName: 'E.D. de Saint-Jérôme' },
{ id: 'Leclerc', name: 'Établissement Leclerc de Laval', shortName: 'E.L. de Laval' },
{ id: 'Trois-Rivières', name: 'Établissement de détention de Trois-Rivières', shortName: 'E.D. de Trois-Rivières' },
{ id: 'Sorel-Tracy', name: 'Établissement de détention de Sorel-Tracy', shortName: 'E.D. de Sorel-Tracy' },
{ id: 'Montréal', name: 'Établissement de détention de Montréal (Bordeaux)', shortName: 'E.D. de Montréal (Bordeaux)' },
{ id: 'Rivière-des-Prairies', name: 'Établissement de détention de Rivière-des-Prairies', shortName: 'E.D. de Rivière-des-Prairies' },
{ id: 'Roberval', name: 'Établissement de détention de Roberval', shortName: 'E.D. de Roberval' }
];
async function main() {
console.log('Start seeding...');
// Seed Admin User
const adminEmail = process.env.ADMIN_EMAIL || 'admin@example.com';
const adminPassword = process.env.ADMIN_PASSWORD || 'password123';
const admin = await prisma.users.upsert({
where: { email: adminEmail },
update: {},
create: {
email: adminEmail,
name: 'Admin User',
role: 'ADMIN',
password: adminPassword, // In a real app, hash the password
},
});
console.log(`Admin user created or already exists: ${adminEmail}`);
// Delete old rooms
const oldNames = facilities.map(f => f.name);
await prisma.chatRoom.deleteMany({
where: {
name: { in: oldNames }
}
});
console.log('Deleted old facility rooms to prepare for renaming.');
// Seed default chat rooms with short names
for (const facility of facilities) {
await prisma.chatRoom.upsert({
where: { name: facility.shortName },
update: {
description: `Canal de discussion pour ${facility.name}. Ouvert à tous les membres concernés.`
},
create: {
name: facility.shortName,
description: `Canal de discussion pour ${facility.name}. Ouvert à tous les membres concernés.`,
isPublic: true,
createdBy: {
connect: { id: admin.id }
}
},
});
}
console.log(`Seeded ${facilities.length} detention facility chat rooms with short names.`);
// Seed General Chat Room
const generalRoom = await prisma.chatRoom.findFirst({
where: { name: 'Général' }
});
if (!generalRoom) {
await prisma.chatRoom.create({
data: {
name: 'Général',
description: 'Canal de discussion général pour tous les membres.',
isPublic: true,
createdBy: {
connect: { id: admin.id }
}
},
});
console.log('General chat room created.');
} else {
console.log('General chat room already exists.');
}
console.log('Seeding finished.');
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});