65 lines
2.0 KiB
JavaScript
65 lines
2.0 KiB
JavaScript
import { PrismaClient } from '@prisma/client';
|
|
import bcrypt from 'bcryptjs';
|
|
|
|
async function createTestUsers() {
|
|
const prisma = new PrismaClient();
|
|
|
|
// Create a regular user
|
|
const user1Email = 'user1@gymflow.ai';
|
|
const user1Password = 'user1pass';
|
|
const hashedUser1Password = await bcrypt.hash(user1Password, 10);
|
|
await prisma.user.upsert({
|
|
where: { email: user1Email },
|
|
update: { password: hashedUser1Password },
|
|
create: {
|
|
email: user1Email,
|
|
password: hashedUser1Password,
|
|
role: 'USER',
|
|
profile: { create: { weight: 70 } },
|
|
},
|
|
});
|
|
|
|
// Create another regular user
|
|
const user2Email = 'user2@gymflow.ai';
|
|
const user2Password = 'user2pass';
|
|
const hashedUser2Password = await bcrypt.hash(user2Password, 10);
|
|
await prisma.user.upsert({
|
|
where: { email: user2Email },
|
|
update: { password: hashedUser2Password },
|
|
create: {
|
|
email: user2Email,
|
|
password: hashedUser2Password,
|
|
role: 'USER',
|
|
profile: { create: { weight: 75 } },
|
|
},
|
|
});
|
|
|
|
// Create a user that will be blocked
|
|
const blockedUserEmail = 'blocked@gymflow.ai';
|
|
const blockedUserPassword = 'blockedpass';
|
|
const hashedBlockedUserPassword = await bcrypt.hash(blockedUserPassword, 10);
|
|
await prisma.user.upsert({
|
|
where: { email: blockedUserEmail },
|
|
update: { password: hashedBlockedUserPassword, isBlocked: true },
|
|
create: {
|
|
email: blockedUserEmail,
|
|
password: hashedBlockedUserPassword,
|
|
role: 'USER',
|
|
isBlocked: true,
|
|
profile: { create: { weight: 80 } },
|
|
},
|
|
});
|
|
|
|
console.log('Test users created or updated successfully.');
|
|
await prisma.$disconnect();
|
|
}
|
|
|
|
createTestUsers()
|
|
.catch((e) => {
|
|
console.error(e);
|
|
process.exit(1);
|
|
})
|
|
.finally(async () => {
|
|
// This script is meant to be run once to seed data, so we don't need to keep it running.
|
|
});
|