// backend/prisma/seed.ts import { PrismaClient } from "@prisma/client"; import * as bcrypt from "bcrypt"; const prisma = new PrismaClient(); async function main() { const defaultAdminEmail = process.env.DEFAULT_ADMIN_EMAIL || "admin@imk.com"; const defaultAdminPassword = process.env.DEFAULT_ADMIN_PASSWORD || "admin123456"; const defaultAdminName = process.env.DEFAULT_ADMIN_NAME || "System Admin"; try { // Check if admin already exists const existingAdmin = await prisma.user.findUnique({ where: { email: defaultAdminEmail }, }); if (!existingAdmin) { // Hash the password const hashedPassword = await bcrypt.hash(defaultAdminPassword, 10); // Create the admin user const admin = await prisma.user.create({ data: { email: defaultAdminEmail, name: defaultAdminName, password: hashedPassword, isAdmin: true, }, }); console.log("Default admin user created:", { id: admin.id, email: admin.email, name: admin.name, }); } else { console.log("Default admin user already exists"); } } catch (error) { console.error("Error creating default admin:", error); throw error; } } main() .catch((e) => { console.error(e); process.exit(1); }) .finally(async () => { await prisma.$disconnect(); });