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

import argparse
import json
from pathlib import Path


ROOT = Path(__file__).resolve().parents[1]
DEFAULT_IN = ROOT / "Temp" / "performance_readiness_replay_bridge_v1.json"
DEFAULT_OUT = ROOT / "Temp" / "performance_readiness_replay_bridge_v2.json"


def _load(path: Path) -> dict:
    if not path.exists():
        return {}
    try:
        obj = json.loads(path.read_text(encoding="utf-8"))
        return obj if isinstance(obj, dict) else {}
    except Exception:
        return {}


def main() -> int:
    ap = argparse.ArgumentParser()
    ap.add_argument("--bridge", default=str(DEFAULT_IN))
    ap.add_argument("--out", default=str(DEFAULT_OUT))
    args = ap.parse_args()

    bridge = _load(Path(args.bridge))
    live = bridge.get("live") if isinstance(bridge.get("live"), dict) else {}
    replay = bridge.get("replay_informational") if isinstance(bridge.get("replay_informational"), dict) else {}
    live_t20_count = int(live.get("t20_count") or 0)
    promotion_rule = "live_t20_count >= 30"
    result = {
        "formula_id": "PERFORMANCE_READINESS_REPLAY_BRIDGE_V2",
        "gate": bridge.get("gate") or "WATCH_PENDING_LIVE_SAMPLE",
        "source_type": {
            "live": "ACTIVE_ELIGIBLE",
            "replay": "INFORMATIONAL_ONLY",
        },
        "live_t20_count": live_t20_count,
        "replay_t20_count": int(replay.get("t20_count") or 0),
        "promotion_rule": promotion_rule,
        "promotion_allowed": live_t20_count >= 30,
        "live": live,
        "replay_informational": replay,
        "source_path": str(Path(args.bridge)),
    }
    out = Path(args.out)
    out.write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(result, ensure_ascii=False, indent=2))
    return 0


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