T.ME/BIBIL_0DAY
CasperSecurity


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.quebec/public_html/prisma/seed.ts
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.user.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();
  }); 

CasperSecurity Mini