/* eslint-disable no-console */

import connectToDatabase from '@/shared/config/dbConfig';
import { createSuperAdminUser } from '@/shared/seeder/registerSuperAdmin';
import { updateAllCompanySeedPermissions } from '@/shared/seeder/updateCompanyPermission';

const runSeedProcess = async (): Promise<void> => {
  console.info('🚀 Starting the seeding process...');

  try {
    await connectToDatabase();
    console.info('✅ Connected to MongoDB');

    console.info('➡️ Creating SuperAdmin user...');
    await createSuperAdminUser();

    console.log('➡️ Seeding and Update permission for all companies...');
    await updateAllCompanySeedPermissions();

    console.info(
      '🎉 Seeding and SuperAdmin registration completed successfully.',
    );

    process.exit(0);
  } catch (error) {
    console.error('❌ Error in seeding and admin registration:', error);
    process.exit(1);
  }
};

runSeedProcess();
