import 'dotenv/config';
import { selectReportSeeds } from './seeds/translations/progress-report-labels.seed';
import { PrismaPg } from '@prisma/adapter-pg';
import { PrismaClient } from '../src/generated/prisma/client';
import {
  PSWG_TRANSLATIONS,
  MINISTRY_TRANSLATIONS,
  CDCGPSF_TRANSLATIONS,
  seedTranslationItems,
  type TranslationSeedItem,
  type TranslationSeedModule,
} from './seeds/translations';

async function main() {
  const connectionString = process.env.DATABASE_URL;
  if (!connectionString) throw new Error('DATABASE_URL is missing');
  const prisma = new PrismaClient({
    adapter: new PrismaPg({ connectionString }),
  });
  try {
    const modules: Array<[TranslationSeedModule, TranslationSeedItem[]]> = [
      ['pswg', PSWG_TRANSLATIONS],
      ['ministry', MINISTRY_TRANSLATIONS],
      ['cdcgpsf', CDCGPSF_TRANSLATIONS],
    ];
    for (const [module, items] of modules) {
      const result = await seedTranslationItems(
        prisma,
        module,
        selectReportSeeds(module, items),
      );
      console.log(module + '/progress-report', result);
    }
  } finally {
    await prisma.$disconnect();
  }
}
main().catch(() => {
  console.error(
    'Could not seed Progress Report translations. Check database connectivity and migrations.',
  );
  process.exitCode = 1;
});
