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

const prisma = new PrismaClient();

async function main() {
  console.log('🌱 Starting database seed...');

  // Create admin user
  const adminPasswordHash = await bcrypt.hash('admin123', 10);
  const admin = await prisma.user.upsert({
    where: { email: 'admin@znakovni.hr' },
    update: {},
    create: {
      email: 'admin@znakovni.hr',
      displayName: 'Administrator',
      passwordHash: adminPasswordHash,
      role: 'ADMIN',
      isActive: true,
      authProvider: 'local',
    },
  });

  console.log('✅ Created admin user:', admin.email);
  console.log('   Email: admin@znakovni.hr');
  console.log('   Password: admin123');

  // Create a demo regular user
  const demoPasswordHash = await bcrypt.hash('demo123', 10);
  const demoUser = await prisma.user.upsert({
    where: { email: 'demo@znakovni.hr' },
    update: {},
    create: {
      email: 'demo@znakovni.hr',
      displayName: 'Demo User',
      passwordHash: demoPasswordHash,
      role: 'USER',
      isActive: true,
      authProvider: 'local',
    },
  });

  console.log('✅ Created demo user:', demoUser.email);
  console.log('   Email: demo@znakovni.hr');
  console.log('   Password: demo123');

  // Add sample terms here in future phases
  console.log('✅ Seed completed successfully!');
}

main()
  .catch((e) => {
    console.error('❌ Seed failed:', e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

