/* eslint-disable no-console */

import connectToDatabase from '@/shared/config/dbConfig';
import User from '@/modules/user/user.model';
import { UserType } from '@/shared/constants/enum.constant';
import { seedMasterBanksFromCsv } from './seedBanks';

const run = async () => {
  try {
    await connectToDatabase();
    console.info('✅ Connected to MongoDB');

    const superAdmin = await User.findOne({
      $or: [{ userType: UserType.SUPERADMIN }, { email: 'hello@makanify.com' }],
    })
      .select('_id')
      .lean();

    if (!superAdmin?._id) {
      console.error(
        '❌ SuperAdmin user not found. Run the main seeder once (seed:dev) or ensure a superadmin exists.',
      );
      process.exit(1);
      return;
    }

    await seedMasterBanksFromCsv({ superAdminId: superAdmin._id });

    console.info('🎉 Master banks seeding completed successfully.');
    process.exit(0);
  } catch (err) {
    console.error('❌ Master banks seeding failed:', err);
    process.exit(1);
  }
};

run();
