/**
 * Build-time script: fetch all logos from PocketBase and cache them to public/logos/.
 * Called as part of `npm run build` so the app starts with logos pre-cached.
 */

import { getPb } from '../src/server/services/pbService';
import { cacheLogos } from '../src/server/services/logoCacheService';

async function main() {
  console.log('[cache-logos] Fetching script list from PocketBase...');
  const pb = getPb();
  const records = await pb.collection('script_scripts').getFullList({
    fields: 'slug,logo',
    batch: 500,
  });

  const entries = records
     
    .filter((r) => r.logo)
    .map((r) => ({ slug: r.slug, url: r.logo }));

  console.log(`[cache-logos] Caching ${entries.length} logos...`);
   
  const result = await cacheLogos(entries, { verbose: true });
  console.log(
    `[cache-logos] Done: ${result.downloaded} downloaded, ${result.skipped} already cached, ${result.errors} errors`,
  );
}

main().catch((err) => {
  console.error('[cache-logos] Failed:', err);
  // Non-fatal — build should continue even if logo caching fails
  process.exit(0);
});
