#!/usr/bin/env python3
from __future__ import annotations

import argparse
import json
import urllib.request
from pathlib import Path


def post_json(url: str, payload: dict) -> dict:
    req = urllib.request.Request(url, data=json.dumps(payload).encode(), headers={"Content-Type": "application/json"}, method="POST")
    with urllib.request.urlopen(req, timeout=60) as resp:
        return json.loads(resp.read())


def main() -> int:
    parser = argparse.ArgumentParser(description="Import existing Jarvis YouTube upload audits into AutoShorts Dashboard")
    parser.add_argument("--audit-dir", required=True)
    parser.add_argument("--api-base", default="http://127.0.0.1:8012")
    mode = parser.add_mutually_exclusive_group(required=True)
    mode.add_argument("--dry-run", action="store_true")
    mode.add_argument("--import", dest="do_import", action="store_true")
    args = parser.parse_args()
    audit_dir = Path(args.audit_dir)
    results = []
    for path in sorted(audit_dir.glob("*.json")):
        endpoint = f"{args.api_base.rstrip('/')}/api/reconciliation/youtube-audit/import"
        results.append(post_json(endpoint, {"path": str(path), "dry_run": bool(args.dry_run)}))
    print(json.dumps({"count": len(results), "dry_run": args.dry_run, "items": results}, indent=2))
    return 0


if __name__ == "__main__":
    raise SystemExit(main())
