Files
DentalManagementMH05/packages/db/prisma/seed.ts

47 lines
1.3 KiB
TypeScript
Executable File

import dotenv from "dotenv";
import path from "path";
dotenv.config({ path: path.resolve(__dirname, ".env") });
import { PrismaClient } from "../generated/prisma";
import { PrismaPg } from "@prisma/adapter-pg";
import bcrypt from "bcrypt";
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL });
const prisma = new PrismaClient({ adapter } as any);
async function main() {
const hashedPassword = await bcrypt.hash("123456", 10);
const admin = await prisma.user.upsert({
where: { username: "admin" },
update: {},
create: { username: "admin", password: hashedPassword },
});
console.log("Seed complete: admin user created (username: admin, password: 123456)");
// Seed 5 default staff members — rename these to real staff names in Settings
const defaultStaff = ["A", "B", "C", "D", "E"];
for (const name of defaultStaff) {
const existing = await prisma.staff.findFirst({
where: { userId: admin.id, name },
});
if (!existing) {
await prisma.staff.create({
data: { userId: admin.id, name, role: "Staff" },
});
}
}
console.log("Seed complete: 5 default staff members created (A, B, C, D, E)");
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});