74 lines
1.5 KiB
TypeScript
74 lines
1.5 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
async function createUsers() {
|
|
const users = await prisma.user.createMany({
|
|
data: [
|
|
{
|
|
name: 'Alice',
|
|
email: 'alice@example.com',
|
|
currency: 'USD',
|
|
},
|
|
{
|
|
name: 'Bob',
|
|
email: 'bob@example.com',
|
|
currency: 'EUR',
|
|
},
|
|
{
|
|
name: 'Charlie',
|
|
email: 'charlie@example.com',
|
|
currency: 'GBP',
|
|
},
|
|
{
|
|
name: 'Diana',
|
|
email: 'diana@example.com',
|
|
currency: 'JPY',
|
|
},
|
|
{
|
|
name: 'Evan',
|
|
email: 'evan@example.com',
|
|
currency: 'CNY',
|
|
},
|
|
],
|
|
});
|
|
|
|
return prisma.user.findMany();
|
|
}
|
|
|
|
async function createGroups() {
|
|
// Assuming Alice creates a group and adds Bob and Charlie
|
|
|
|
const users = await prisma.user.findMany();
|
|
|
|
if (users.length) {
|
|
const group = await prisma.group.create({
|
|
data: {
|
|
name: 'Holiday Trip',
|
|
publicId: 'holiday-trip-123',
|
|
defaultCurrency: 'USD',
|
|
createdBy: { connect: { id: users[0]?.id } },
|
|
},
|
|
});
|
|
|
|
await prisma.groupUser.createMany({
|
|
data: users.map((u) => ({ groupId: group.id, userId: u.id })),
|
|
});
|
|
console.log('Group created and users added');
|
|
}
|
|
}
|
|
|
|
async function main() {
|
|
await createUsers();
|
|
await createGroups();
|
|
}
|
|
|
|
main()
|
|
.catch((e) => {
|
|
console.error(e);
|
|
process.exit(1);
|
|
})
|
|
.finally(() => {
|
|
prisma.$disconnect().catch(console.log);
|
|
});
|