import { NestFactory } from '@nestjs/core';
import { UserRole } from '../src/common/constants/enums';
import { AppModule } from '../src/app.module';
import { UsersService } from '../src/users/users.service';

async function main() {
  const app = await NestFactory.createApplicationContext(AppModule);
  try {
    const users = app.get(UsersService);
    const count = await users.count();
    if (count > 0) {
      console.log('Users already exist; skipping seed.');
      return;
    }
    const email = process.env.SEED_SUPER_ADMIN_EMAIL ?? 'admin@example.com';
    const password = process.env.SEED_SUPER_ADMIN_PASSWORD ?? 'ChangeMe123!';
    await users.createUser({
      email,
      password,
      fullName: 'Super Admin',
      employeeCode: 'SUPERADMIN',
      role: UserRole.SUPER_ADMIN,
      mobileNumber: process.env.SEED_SUPER_ADMIN_MOBILE ?? '9999999999',
    });
    console.log(`Seeded super admin: ${email}`);
  } finally {
    await app.close();
  }
}

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