import argparse
import json
import sys
from pathlib import Path

REPO_ROOT = Path(__file__).resolve().parents[2]
if str(REPO_ROOT) not in sys.path:
    sys.path.insert(0, str(REPO_ROOT))

from pypos.modules.platform_ops.services.fleet_rollout_gate_service import FleetRolloutGateService

# edited by glg


def parse_args():
    parser = argparse.ArgumentParser(
        description="Evaluasi metrik rollout wave dan putuskan continue/halt_and_rollback."
    )
    parser.add_argument("--metrics-file", required=True, help="Path file JSON metrik wave/canary.")
    parser.add_argument("--fail-threshold-pct", type=float, default=2.0)
    parser.add_argument("--latency-threshold-ms", type=float, default=2000.0)
    parser.add_argument("--output", default="", help="Path output JSON keputusan gate.")
    return parser.parse_args()


def main():
    args = parse_args()
    service = FleetRolloutGateService()
    result = service.evaluate_metrics_file(
        metrics_file=args.metrics_file,
        fail_threshold_pct=args.fail_threshold_pct,
        latency_threshold_ms=args.latency_threshold_ms,
    )
    payload = json.dumps(result, ensure_ascii=False, indent=2)
    if args.output:
        Path(args.output).write_text(payload, encoding="utf-8")
    print(payload)


if __name__ == "__main__":
    main()
