import 'dotenv/config';
import fs from 'fs';
import os from 'os';
import path from 'path';
import {
  buildLeagueCoverageAuditReport,
  renderLeagueCoverageAuditMarkdown,
} from '../services/league-coverage-audit';

const args = process.argv.slice(2);

function getArgValue(flag: string): string | null {
  const index = args.indexOf(flag);
  if (index === -1) return null;
  return args[index + 1] || null;
}

function buildTimestampSlug(date: Date): string {
  return date.toISOString().replace(/[:.]/g, '-');
}

async function main() {
  const auditedAt = new Date();
  const outputDir = getArgValue('--output-dir') || path.join(os.tmpdir(), 'rainmaker-prop-audits');
  const slug = buildTimestampSlug(auditedAt);
  const jsonPath = path.join(outputDir, `league-coverage-audit-${slug}.json`);
  const markdownPath = path.join(outputDir, `league-coverage-audit-${slug}.md`);
  const report = buildLeagueCoverageAuditReport(auditedAt.toISOString());

  fs.mkdirSync(outputDir, { recursive: true });
  fs.writeFileSync(jsonPath, JSON.stringify(report, null, 2));
  fs.writeFileSync(markdownPath, renderLeagueCoverageAuditMarkdown(report));

  console.log(JSON.stringify({
    auditedAt: report.auditedAt,
    summary: report.summary,
    jsonPath,
    markdownPath,
  }, null, 2));
}

if (require.main === module) {
  main().catch((err) => {
    console.error('[league-coverage-audit] Fatal:', err);
    process.exit(1);
  });
}
