89 lines
1.9 KiB
TypeScript
89 lines
1.9 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
import * as bcrypt from 'bcrypt';
|
|
const prisma = new PrismaClient();
|
|
async function main() {
|
|
const password = await bcrypt.hash('asdf', 10);
|
|
// bcrypt.hash('asdf', 10, async (err, password) => {
|
|
const clinetRole = await prisma.role.upsert({
|
|
where: { name: 'client' },
|
|
update: {},
|
|
create: {
|
|
name: 'client',
|
|
},
|
|
});
|
|
const adminRole = await prisma.role.upsert({
|
|
where: { name: 'client' },
|
|
update: {},
|
|
create: {
|
|
name: 'admin',
|
|
},
|
|
});
|
|
const customer = await prisma.user.upsert({
|
|
where: { email: 'client@example.com' },
|
|
update: {},
|
|
create: {
|
|
email: 'client@example.com',
|
|
password: password,
|
|
product: {
|
|
create: [
|
|
{
|
|
title: 'Product 1',
|
|
published: true,
|
|
},
|
|
{
|
|
title: 'Product 2',
|
|
published: true,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
});
|
|
const admin = await prisma.user.upsert({
|
|
where: { email: 'admin@example.com' },
|
|
update: {},
|
|
create: {
|
|
email: 'admin@example.com',
|
|
password: password,
|
|
},
|
|
});
|
|
await prisma.usersRoles.upsert({
|
|
where: {
|
|
userId_roleId: {
|
|
userId: customer.id,
|
|
roleId: clinetRole.id,
|
|
},
|
|
},
|
|
update: {},
|
|
create: {
|
|
roleId: clinetRole.id,
|
|
userId: customer.id,
|
|
assignedBy: 'seed.ts',
|
|
},
|
|
});
|
|
await prisma.usersRoles.upsert({
|
|
where: {
|
|
userId_roleId: {
|
|
userId: admin.id,
|
|
roleId: adminRole.id,
|
|
},
|
|
},
|
|
update: {},
|
|
create: {
|
|
roleId: adminRole.id,
|
|
userId: admin.id,
|
|
assignedBy: 'seed.ts',
|
|
},
|
|
});
|
|
console.log({ customer, admin });
|
|
// }
|
|
}
|
|
main()
|
|
.then(async () => {
|
|
await prisma.$disconnect();
|
|
})
|
|
.catch(async (e) => {
|
|
console.error(e);
|
|
await prisma.$disconnect();
|
|
process.exit(1);
|
|
});
|