import { PrismaClient } from '@prisma/client';
import bcrypt from 'bcryptjs';

const prisma = new PrismaClient();

async function main() {
  // --- Admin user ---
  // CHANGE THIS PASSWORD before running against anything but a local DB.
  const passwordHash = await bcrypt.hash('changeme123', 10);
  await prisma.adminUser.upsert({
    where: { email: 'admin@example.com' },
    update: {},
    create: {
      name: 'Admin',
      email: 'admin@example.com',
      passwordHash,
      role: 'ADMIN'
    }
  });

  // --- One category so the product form has somewhere to point ---
  const category = await prisma.category.upsert({
    where: { slug: 'panneaux-solaires' },
    update: {},
    create: {
      slug: 'panneaux-solaires',
      order: 0,
      translations: {
        create: [
          { locale: 'fr', name: 'Panneaux solaires' },
          { locale: 'ar', name: 'الألواح الشمسية' }
        ]
      }
    }
  });

  console.log('Seeded admin user (admin@example.com / changeme123) and category:', category.slug);
}

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