import mongoose from 'mongoose';
import connectDB from '../src/lib/mongodb';
import UserType from '../src/models/UserType';
import User from '../src/models/User';

async function seed() {
  try {
    await connectDB();

    // Create user types
    const adminType = await UserType.findOneAndUpdate(
      { role: 'admin' },
      { role: 'admin', roleId: 1 },
      { upsert: true, new: true }
    );

    const userType = await UserType.findOneAndUpdate(
      { role: 'user' },
      { role: 'user', roleId: 2 },
      { upsert: true, new: true }
    );

    console.log('User types created:', adminType, userType);

    // Create admin user
    const adminUser = await User.findOneAndUpdate(
      { email: 'admin@gmail.com' },
      {
        name: 'Admin User',
        email: 'admin@gmail.com',
        password: '$2y$10$IgXUSTvOWgt69BzBMuF6deBSFkZ/1sAMyVK93fExOpW5od989m01u', // Provided hashed password
        role: adminType._id,
        status: 'active',
      },
      { upsert: true, new: true }
    );

    console.log('Admin user created:', adminUser);

    console.log('Seeding completed successfully');
  } catch (error) {
    console.error('Seeding error:', error);
  } finally {
    await mongoose.connection.close();
  }
}

seed();