You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import { NextResponse } from 'next/server';
|
|
import { prisma } from '@/lib/prisma';
|
|
import bcrypt from 'bcryptjs';
|
|
|
|
export async function GET() {
|
|
try {
|
|
const defaultPassword = await bcrypt.hash('password123', 10);
|
|
|
|
// Create an Admin user
|
|
const adminUser = await prisma.user.upsert({
|
|
where: { email: 'admin@tam-finance.com' },
|
|
update: {},
|
|
create: {
|
|
name: 'TAM Admin',
|
|
email: 'admin@tam-finance.com',
|
|
role: 'ADMIN',
|
|
department: 'Operations',
|
|
password: defaultPassword,
|
|
},
|
|
});
|
|
|
|
// Create a regular worker
|
|
const workerUser = await prisma.user.upsert({
|
|
where: { email: 'worker@tam-finance.com' },
|
|
update: {},
|
|
create: {
|
|
name: 'John Doe',
|
|
email: 'worker@tam-finance.com',
|
|
role: 'WORKER',
|
|
department: 'Engineering',
|
|
password: defaultPassword,
|
|
},
|
|
});
|
|
|
|
return NextResponse.json({
|
|
message: 'Database specifically seeded for TAM Finance',
|
|
adminUser,
|
|
workerUser
|
|
});
|
|
} catch (error) {
|
|
console.error('Failed to seed the database', error);
|
|
return NextResponse.json({ error: 'Failed to seed database' }, { status: 500 });
|
|
}
|
|
}
|