import dotenv from "dotenv";
dotenv.config();

import mongoose from "mongoose";
import bcrypt from "bcryptjs";
import connectDB from "../config/db";
import Admin from "../models/admin";

const ADMIN_NAME = "Dev";
const ADMIN_EMAIL = "dev@brandhighlighters.co.uk";
const ADMIN_PASSWORD = "Dev@12345@";

const seedAdmin = async (): Promise<void> => {
  await connectDB();

  const existing = await Admin.findOne({ email: ADMIN_EMAIL });
  if (existing) {
    console.log(`Admin already exists: ${ADMIN_EMAIL}`);
    return;
  }

  const hashed = await bcrypt.hash(ADMIN_PASSWORD, 10);
  await Admin.create({ name: ADMIN_NAME, email: ADMIN_EMAIL, password: hashed });
  console.log(`Admin created: ${ADMIN_EMAIL}`);
};

seedAdmin()
  .catch((err) => {
    console.error("Admin seeding failed:", err);
    process.exitCode = 1;
  })
  .finally(async () => {
    await mongoose.disconnect();
  });
