import { normalizeListing } from "../scraper/core/normalize"
import { BrunoFritschScraper } from "../scraper/sources/bruno-fritsch"
import { ClicarScraper } from "../scraper/sources/clicar"
import { MaritanoScraper } from "../scraper/sources/maritano"
import { PortilloSurScraper } from "../scraper/sources/portillo-sur"
import { SalfaScraper } from "../scraper/sources/salfa"
import { SalazarIsraelScraper } from "../scraper/sources/salazar-israel"
import { SergioEscobarScraper } from "../scraper/sources/sergio-escobar"

const source = process.argv[2]

const scrapers = {
  "bruno-fritsch": new BrunoFritschScraper(),
  clicar: new ClicarScraper(),
  maritano: new MaritanoScraper(),
  salfa: new SalfaScraper(),
  "portillo-sur": new PortilloSurScraper(),
  "salazar-israel": new SalazarIsraelScraper(),
  "sergio-escobar": new SergioEscobarScraper()
}

async function main() {
  if (!source || !(source in scrapers)) {
    console.error(
      "Uso: npm run scrape:source -- <bruno-fritsch|clicar|maritano|salfa|portillo-sur|salazar-israel|sergio-escobar>"
    )
    process.exit(1)
  }

  const scraper = scrapers[source as keyof typeof scrapers]
  const listings = await scraper.scrape()
  const normalized = listings.map(normalizeListing)

  console.log(JSON.stringify(normalized, null, 2))
}

main().catch((error) => {
  console.error(error)
  process.exit(1)
})
