/**
 * Configuration and tunables for the Facebook scraper.
 */

const envCdpPort = Number.parseInt(
  process.env.FB_CDP_PORT ?? process.env.CHROME_REMOTE_PORT ?? '9222',
  10,
);

export const config = {
  cdp: {
    port: Number.isFinite(envCdpPort) ? envCdpPort : 9222,
    host: process.env.FB_CDP_HOST ?? process.env.CHROME_REMOTE_HOST ?? 'localhost',
  },
  timing: {
    actionDelay: { mean: 1500, sigma: 500 },
    scrollPause: { mean: 3000, sigma: 1000 },
    idlePause: { min: 5000, max: 15000 },
    clickOffset: 3,
    sessionJitter: 0.2, // ±20% on all timing
  },
  scroll: {
    stepMin: 600,
    stepMax: 1200,
    maxScrolls: 200,
  },
  network: {
    graphqlUrlPattern: /\/api\/graphql/,
    responseTimeout: 10_000,
  },
} as const;

export type Config = typeof config;
