import fs from 'fs';
import path from 'path';
import { locales, type Locale } from '@/i18n/config';

const data = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'lib', 'demo-data.json'), 'utf8'));

export function localeParams(): { locale: Locale }[] {
  return [...locales].map((locale) => ({ locale }));
}

export function listSlugs(model: string): string[] {
  return ((data[model] ?? []) as { slug?: string }[]).map((r) => r.slug).filter(Boolean) as string[];
}

export function listIds(model: string): string[] {
  return ((data[model] ?? []) as { id?: string }[]).map((r) => r.id).filter(Boolean) as string[];
}

export function slugParamsFor(model: string): { locale: Locale; slug: string }[] {
  return localeParams().flatMap((locale) =>
    listSlugs(model).map((slug) => ({ ...locale, slug }))
  );
}

export function idParamsFor(model: string): { locale: Locale; id: string }[] {
  return localeParams().flatMap((locale) => listIds(model).map((id) => ({ ...locale, id })));
}