![]() 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/ |
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();