import type { ScraperAdapter, AdapterConfig, AdapterRunResult, ScraperEnv } from '../types';
import { scrapeGrandCinemas, DEFAULT_CINEMAS, type CinemaConfig as GrandCinemaConfig } from '../chains/grand-cinemas';
import { runChainScrape } from '../lib/db-ops';

const adapter: ScraperAdapter = {
  id: 'grand-cinemas',
  async run(config: AdapterConfig, env: ScraperEnv): Promise<AdapterRunResult> {
    const opts = {
      cinemas: (config.cinemas as GrandCinemaConfig[] | undefined) ?? DEFAULT_CINEMAS,
      lookaheadDays: config.lookahead_days as number | undefined,
      maxMoviesPerCinema: config.max_movies as number | undefined,
    };
    const result = await scrapeGrandCinemas(env, opts);
    return runChainScrape(env, 'grand-cinemas', undefined, result);
  },
};

export default adapter;
