"""Inspect a saved API status response locally without sending any request."""

import json
import sys
from urllib.parse import urlparse


def inspect_response(data):
    if not isinstance(data, dict):
        raise ValueError("Expected a response object")
    status = data.get("status")
    if status == "pending":
        return {"state": "waiting", "submit_again": False, "accepted": False}
    if status == "failed":
        return {"state": "failed", "submit_again": False, "accepted": False}
    if status == "done":
        video = data.get("video")
        url = video.get("url") if isinstance(video, dict) else None
        parsed = urlparse(url) if isinstance(url, str) else None
        if not parsed or parsed.scheme != "https" or not parsed.netloc:
            raise ValueError("Done response requires a valid HTTPS video URL")
        return {"state": "ready_for_download_review", "submit_again": False, "accepted": False}
    raise ValueError("Unknown status; inspect the original operation rather than resubmitting")


if __name__ == "__main__":
    if len(sys.argv) != 2:
        raise SystemExit("Pass a saved response JSON path")
    with open(sys.argv[1], encoding="utf-8") as source:
        print(json.dumps(inspect_response(json.load(source))))
