import bcrypt from "bcryptjs";
import { connectDb, disconnectDb } from "../src/db/mongoose";
import { User } from "../src/db/models";

const EMAIL = "admin@safarlibya.com";
const PASSWORD = "19992000";

async function main() {
  await connectDb();
  const passwordHash = await bcrypt.hash(PASSWORD, 10);

  const existing = await User.findOne({ email: EMAIL });
  if (existing) {
    existing.passwordHash = passwordHash;
    existing.role = "SUPER_ADMIN";
    existing.status = "ACTIVE";
    existing.emailVerifiedAt = existing.emailVerifiedAt ?? new Date();
    existing.deletedAt = undefined;
    await existing.save();
    console.log(`Updated admin: ${EMAIL} → SUPER_ADMIN`);
  } else {
    await User.create({
      email: EMAIL,
      fullName: "Safar Libya Admin",
      passwordHash,
      role: "SUPER_ADMIN",
      status: "ACTIVE",
      locale: "ar",
      emailVerifiedAt: new Date(),
    });
    console.log(`Created admin: ${EMAIL} as SUPER_ADMIN`);
  }

  console.log(`Password: ${PASSWORD}`);
  await disconnectDb();
  process.exit(0);
}

main().catch(async (err) => {
  console.error(err);
  await disconnectDb().catch(() => undefined);
  process.exit(1);
});
