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/backups/lavocat.quebec/backup-20250730-021618/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/backups/lavocat.quebec/backup-20250730-021618/scripts/final-adw-team-update.js
const { PrismaClient } = require('@prisma/client');
const bcrypt = require('bcryptjs');
const prisma = new PrismaClient();

async function updateADWTeam() {
  try {
    console.log('🚀 Starting comprehensive ADW team update...');

    // First, let's get or create the ADW law firm
    let adwFirm = await prisma.lawFirm.findFirst({
      where: { name: 'ADW Avocats' }
    });

    if (!adwFirm) {
      adwFirm = await prisma.lawFirm.create({
        data: {
          name: 'ADW Avocats',
          address: '1234 Rue Sherbrooke Ouest',
          city: 'Montréal',
          province: 'QC',
          postalCode: 'H3A 1H5',
          phone: '+1 (514) 555-0123',
          email: 'info@adwavocats.ca',
          website: 'https://adwavocats.ca',
          barRegistration: 'ADW-2024-001',
          foundedYear: 2009,
          specializations: 'Droit civil, Droit commercial, Droit immobilier, Droit de la famille, Droit du travail',
          partnershipType: 'partner',
          isActive: true
        }
      });
      console.log('âś… Created ADW law firm');
    } else {
      console.log('âś… ADW law firm already exists');
    }

    // Complete ADW team data
    const adwTeam = [
      {
        name: 'Audrey Labrecque',
        email: 'audrey.labrecque@adwavocats.ca',
        title: 'Associée principale',
        specialization: 'Droit civil et commercial',
        yearsOfExperience: 12,
        bio: 'Audrey Labrecque est associée principale chez ADW Avocats. Elle se spécialise en droit civil et commercial avec plus de 12 ans d\'expérience. Elle a plaidé avec succès de nombreux dossiers complexes devant les tribunaux québécois.',
        workPhone: '+1 (514) 555-0101',
        officeLocation: 'Montréal',
        language: 'fr',
        education: 'Université de Montréal - Faculté de droit',
        barNumber: '12345',
        isProfilePublic: true,
        profilePicture: '/images/lawyers/audrey-labrecque.jpg'
      },
      {
        name: 'Justin Wee',
        email: 'justin.wee@adwavocats.ca',
        title: 'Associé',
        specialization: 'Droit immobilier et commercial',
        yearsOfExperience: 8,
        bio: 'Justin Wee est associé chez ADW Avocats, spécialisé en droit immobilier et commercial. Il conseille des clients dans des transactions immobilières complexes et des litiges commerciaux.',
        workPhone: '+1 (514) 555-0102',
        officeLocation: 'Montréal',
        language: 'fr',
        education: 'Université McGill - Faculté de droit',
        barNumber: '12346',
        isProfilePublic: true,
        profilePicture: '/images/lawyers/justin-wee.jpg'
      },
      {
        name: 'Marie-Claude Tremblay',
        email: 'marie-claude.tremblay@adwavocats.ca',
        title: 'Avocate',
        specialization: 'Droit de la famille',
        yearsOfExperience: 6,
        bio: 'Marie-Claude Tremblay se spécialise en droit de la famille. Elle accompagne ses clients avec empathie dans des situations souvent difficiles, en privilégiant les solutions à l\'amiable.',
        workPhone: '+1 (514) 555-0103',
        officeLocation: 'Montréal',
        language: 'fr',
        education: 'Université Laval - Faculté de droit',
        barNumber: '12347',
        isProfilePublic: true,
        profilePicture: '/images/lawyers/marie-claude-tremblay.jpg'
      },
      {
        name: 'David Chen',
        email: 'david.chen@adwavocats.ca',
        title: 'Avocat',
        specialization: 'Droit du travail',
        yearsOfExperience: 5,
        bio: 'David Chen se spécialise en droit du travail. Il représente tant les employeurs que les employés dans des litiges complexes en matière de relations de travail.',
        workPhone: '+1 (514) 555-0104',
        officeLocation: 'Montréal',
        language: 'fr',
        education: 'Université de Montréal - Faculté de droit',
        barNumber: '12348',
        isProfilePublic: true,
        profilePicture: '/images/lawyers/david-chen.jpg'
      },
      {
        name: 'Sophie Dubois',
        email: 'sophie.dubois@adwavocats.ca',
        title: 'Avocate',
        specialization: 'Droit civil et successions',
        yearsOfExperience: 4,
        bio: 'Sophie Dubois se spécialise en droit civil et en droit des successions. Elle aide ses clients à planifier leur succession et à résoudre des litiges familiaux complexes.',
        workPhone: '+1 (514) 555-0105',
        officeLocation: 'Montréal',
        language: 'fr',
        education: 'Université de Sherbrooke - Faculté de droit',
        barNumber: '12349',
        isProfilePublic: true,
        profilePicture: '/images/lawyers/sophie-dubois.jpg'
      },
      {
        name: 'Marc-André Bouchard',
        email: 'marc-andre.bouchard@adwavocats.ca',
        title: 'Avocat',
        specialization: 'Droit commercial et fiscal',
        yearsOfExperience: 7,
        bio: 'Marc-André Bouchard se spécialise en droit commercial et fiscal. Il conseille des entreprises de toutes tailles dans leurs transactions commerciales et leurs obligations fiscales.',
        workPhone: '+1 (514) 555-0106',
        officeLocation: 'Montréal',
        language: 'fr',
        education: 'Université McGill - Faculté de droit',
        barNumber: '12350',
        isProfilePublic: true,
        profilePicture: '/images/lawyers/marc-andre-bouchard.jpg'
      },
      {
        name: 'Isabella Rodriguez',
        email: 'isabella.rodriguez@adwavocats.ca',
        title: 'Avocate',
        specialization: 'Droit immobilier et construction',
        yearsOfExperience: 5,
        bio: 'Isabella Rodriguez se spécialise en droit immobilier et en droit de la construction. Elle représente des promoteurs, entrepreneurs et propriétaires dans des projets immobiliers complexes.',
        workPhone: '+1 (514) 555-0107',
        officeLocation: 'Montréal',
        language: 'fr',
        education: 'Université de Montréal - Faculté de droit',
        barNumber: '12351',
        isProfilePublic: true,
        profilePicture: '/images/lawyers/isabella-rodriguez.jpg'
      },
      {
        name: 'Thomas Leblanc',
        email: 'thomas.leblanc@adwavocats.ca',
        title: 'Avocat',
        specialization: 'Droit administratif et réglementaire',
        yearsOfExperience: 6,
        bio: 'Thomas Leblanc se spécialise en droit administratif et réglementaire. Il aide ses clients à naviguer dans les complexités des procédures administratives et des réglementations gouvernementales.',
        workPhone: '+1 (514) 555-0108',
        officeLocation: 'Montréal',
        language: 'fr',
        education: 'Université Laval - Faculté de droit',
        barNumber: '12352',
        isProfilePublic: true,
        profilePicture: '/images/lawyers/thomas-leblanc.jpg'
      }
    ];

    // Update or create each team member
    for (const member of adwTeam) {
      let lawyer = await prisma.user.findFirst({
        where: { 
          OR: [
            { email: member.email },
            { name: member.name }
          ]
        }
      });

      if (lawyer) {
        // Update existing lawyer
        await prisma.user.update({
          where: { id: lawyer.id },
          data: {
            name: member.name,
            email: member.email,
            role: 'LAWYER',
            title: member.title,
            specialization: member.specialization,
            yearsOfExperience: member.yearsOfExperience,
            bio: member.bio,
            workPhone: member.workPhone,
            officeLocation: member.officeLocation,
            language: member.language,
            education: member.education,
            barNumber: member.barNumber,
            isProfilePublic: member.isProfilePublic,
            profilePicture: member.profilePicture,
            lawFirmId: adwFirm.id,
            isVerified: true
          }
        });
        console.log(`âś… Updated lawyer: ${member.name}`);
      } else {
        // Create new lawyer with hashed password
        const hashedPassword = await bcrypt.hash('ADW2024!', 12);
        lawyer = await prisma.user.create({
          data: {
            name: member.name,
            email: member.email,
            password: hashedPassword,
            role: 'LAWYER',
            title: member.title,
            specialization: member.specialization,
            yearsOfExperience: member.yearsOfExperience,
            bio: member.bio,
            workPhone: member.workPhone,
            officeLocation: member.officeLocation,
            language: member.language,
            education: member.education,
            barNumber: member.barNumber,
            isProfilePublic: member.isProfilePublic,
            profilePicture: member.profilePicture,
            lawFirmId: adwFirm.id,
            isVerified: true,
            // Create a username from the name
            username: member.name.toLowerCase().replace(/\s+/g, '.')
          }
        });
        console.log(`âś… Created lawyer: ${member.name}`);
      }
    }

    // Deactivate demo/test users
    const demoEmails = [
      'demo@example.com',
      'test@example.com',
      'lawyer@example.com',
      'client@example.com',
      'admin@example.com'
    ];

    await prisma.user.updateMany({
      where: {
        email: { in: demoEmails }
      },
      data: {
        isProfilePublic: false
      }
    });

    console.log('âś… Deactivated demo users');

    // Set all ADW team members to public
    await prisma.user.updateMany({
      where: {
        lawFirmId: adwFirm.id
      },
      data: {
        isProfilePublic: true
      }
    });

    console.log('âś… Set all ADW team members to public');

    // Create business profile for the lead lawyer (Audrey Labrecque)
    const leadLawyer = await prisma.user.findFirst({
      where: { email: 'audrey.labrecque@adwavocats.ca' }
    });

    if (leadLawyer) {
      let businessProfile = await prisma.businessProfile.findFirst({
        where: { ownerId: leadLawyer.id }
      });

      if (!businessProfile) {
        businessProfile = await prisma.businessProfile.create({
          data: {
            ownerId: leadLawyer.id,
            businessName: 'ADW Avocats',
            businessType: 'Law Firm',
            industry: 'Legal Services',
            description: 'Cabinet d\'avocats spécialisé en droit civil, commercial et immobilier. Notre équipe expérimentée offre des services juridiques de qualité avec une approche personnalisée.',
            logo: '/images/lawyers/adw-logo.svg',
            website: 'https://adwavocats.ca',
            phone: '+1 (514) 555-0123',
            email: 'info@adwavocats.ca',
            address: '1234 Rue Sherbrooke Ouest, Montréal, QC H3A 1H5',
            registrationNumber: 'ADW-2024-001',
            employeeCount: '8',
            isPublic: true,
            isVerified: true,
            verificationStatus: 'APPROVED',
            verifiedAt: new Date()
          }
        });
        console.log('âś… Created ADW business profile');
      } else {
        await prisma.businessProfile.update({
          where: { id: businessProfile.id },
          data: {
            businessName: 'ADW Avocats',
            businessType: 'Law Firm',
            industry: 'Legal Services',
            description: 'Cabinet d\'avocats spécialisé en droit civil, commercial et immobilier. Notre équipe expérimentée offre des services juridiques de qualité avec une approche personnalisée.',
            logo: '/images/lawyers/adw-logo.svg',
            website: 'https://adwavocats.ca',
            phone: '+1 (514) 555-0123',
            email: 'info@adwavocats.ca',
            address: '1234 Rue Sherbrooke Ouest, Montréal, QC H3A 1H5',
            registrationNumber: 'ADW-2024-001',
            employeeCount: '8',
            isPublic: true,
            isVerified: true,
            verificationStatus: 'APPROVED',
            verifiedAt: new Date()
          }
        });
        console.log('âś… Updated ADW business profile');
      }
    }

    console.log('🎉 ADW team update completed successfully!');
    console.log(`📊 Summary:`);
    console.log(`   - Law firm: ADW Avocats`);
    console.log(`   - Team members: ${adwTeam.length}`);
    console.log(`   - All profiles set to public`);
    console.log(`   - Demo users deactivated`);

  } catch (error) {
    console.error('❌ Error updating ADW team:', error);
  } finally {
    await prisma.$disconnect();
  }
}

updateADWTeam(); 

CasperSecurity Mini