import { PrismaClient, Role } from "@prisma/client";
import * as argon2 from "argon2";
import * as dotenv from "dotenv";

dotenv.config();

const prisma = new PrismaClient(); // Prisma client instance

/**
 * Seed the database with admin user
 */
async function main() {
  const hashedPassword = await argon2.hash(
    process.env.ADMIN_PASSWORD as string
  );

  await prisma.user.upsert({
    where: { username: "admin" },
    update: {
      name: "Admin User",
      password: hashedPassword,
      role: Role.ADMIN,
    },
    create: {
      name: "Admin User",
      username: "admin",
      password: hashedPassword,
      role: Role.ADMIN,
    },
  });
}

main()
  .then(async () => {
    await prisma.$disconnect();
  })
  .catch(async (e) => {
    console.error(e);
    await prisma.$disconnect();
  });