import 'dotenv/config';
import { PrismaPg } from '@prisma/adapter-pg';
import { PrismaClient } from '../src/generated/prisma/client';
import { MINISTRY_TRANSLATIONS, PSWG_TRANSLATIONS, CDC_TRANSLATIONS, CEFP_TRANSLATIONS, CDCGPSF_TRANSLATIONS, type TranslationSeedModule, type TranslationSeedItem } from './seeds/translations';
import { seedTranslationItems } from './seeds/translations/translation-seed.runner';

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[]]> = [
      ['ministry', MINISTRY_TRANSLATIONS], ['pswg', PSWG_TRANSLATIONS],
      ['cdc', CDC_TRANSLATIONS], ['cefp', CEFP_TRANSLATIONS], ['cdcgpsf', CDCGPSF_TRANSLATIONS],
    ];
    for (const [module, seeds] of modules) {
      const items = seeds.filter(item => item.page === 'meeting_summary');
      const result = await seedTranslationItems(prisma, module, items);
      console.log(`[${module}/meeting_summary] total=${result.total} created=${result.created} kept=${result.kept}`);
    }
  } finally {
    await prisma.$disconnect();
  }
}

main().catch(() => {
  console.error(
    'Could not seed Ministry Meeting Summary translations. Check database connectivity and migrations.',
  );
  process.exitCode = 1;
});
