import "dotenv/config";
import bcrypt from "bcryptjs";
import { PrismaClient } from "@prisma/client";

const prisma = new PrismaClient();

async function main() {
  const adminEmail = process.env.ADMIN_SEED_EMAIL ?? "admin@monbilanprevention-pharmacie.fr";
  const adminPassword = process.env.ADMIN_SEED_PASSWORD ?? "ChangeMoi123!";

  const adminHash = await bcrypt.hash(adminPassword, 10);
  await prisma.user.upsert({
    where: { email: adminEmail },
    update: {},
    create: {
      email: adminEmail,
      passwordHash: adminHash,
      role: "ADMIN",
    },
  });
  console.log(`Admin prêt : ${adminEmail} / ${adminPassword}`);

  const pharmacyPassword = "PharmacieTest123!";
  const pharmacyHash = await bcrypt.hash(pharmacyPassword, 10);

  const pharmacy = await prisma.pharmacy.upsert({
    where: { slug: "pharmacie-test" },
    update: {},
    create: {
      name: "Pharmacie Test",
      contactEmail: "pharmacie-test@example.com",
      status: "ACTIVE",
      slug: "pharmacie-test",
    },
  });

  await prisma.user.upsert({
    where: { email: "pharmacie-test@example.com" },
    update: {},
    create: {
      email: "pharmacie-test@example.com",
      passwordHash: pharmacyHash,
      role: "PHARMACY",
      pharmacyId: pharmacy.id,
    },
  });
  console.log(`Pharmacie de test prête : pharmacie-test@example.com / ${pharmacyPassword}`);
  console.log(`Lien questionnaire patient : /b/${pharmacy.slug}`);
}

main()
  .catch((e) => {
    console.error(e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });
