import type { ScraperAdapter, AdapterConfig, AdapterRunResult, ScraperEnv } from '../types';
import { scrapeVoxCinemas, DEFAULT_CINEMAS, type VoxCinemaConfig } from '../chains/vox-cinemas';
import { runChainScrape } from '../lib/db-ops';

const adapter: ScraperAdapter = {
  id: 'vox-cinemas',
  async run(config: AdapterConfig, env: ScraperEnv): Promise<AdapterRunResult> {
    const opts = {
      baseUrl: config.base_url as string | undefined,
      cinemas: (config.cinemas as VoxCinemaConfig[] | undefined) ?? DEFAULT_CINEMAS,
      lookaheadDays: config.lookahead_days as number | undefined,
    };
    const result = await scrapeVoxCinemas(env, opts);
    return runChainScrape(env, 'vox-cinemas', undefined, result);
  },
};

export default adapter;
