import "dotenv/config";
import { syncOddsFromProvider } from "../src/server/sync/odds-sync";
import { logger } from "../src/server/logger";

const SYNC_INTERVAL_MS = 180_000;
let isSyncRunning = false;

async function tick() {
  if (isSyncRunning) {
    logger.warn("Provider sync skipped because a previous sync is still running");
    return;
  }

  isSyncRunning = true;
  try {
    const odds = await syncOddsFromProvider();
    logger.info({ odds, nextRunMs: SYNC_INTERVAL_MS }, "Provider sync completed");
  } finally {
    isSyncRunning = false;
  }
}

async function main() {
  await tick();
  setInterval(() => {
    tick().catch((error) => logger.error({ error }, "Provider sync failed"));
  }, SYNC_INTERVAL_MS);
}

main().catch((error) => {
  logger.error({ error }, "Provider worker failed to start");
  process.exit(1);
});
