"""Requires requests. Keep beside request.json and settings-demo.png."""
import json
import os
import time
from pathlib import Path

import requests

root = Path(__file__).resolve().parent
request = json.loads((root / "request.json").read_text())
started = time.perf_counter()
with (root / "settings-demo.png").open("rb") as image:
    response = requests.post(
        "https://api.typesafe.ai/v1/systemone",
        headers={
            "Authorization": f"Bearer {os.environ['TYPESAFE_API_KEY']}",
            "TypeSafe-Danger-Zone-Images": "true",
        },
        files=[
            ("request", (None, json.dumps(request), "application/json")),
            ("screenshot-file", ("settings-demo.png", image, "image/png")),
        ],
        timeout=30,
    )
if not response.ok:
    raise RuntimeError(f"TypeSafe HTTP {response.status_code}: {response.text}")
result = response.json()
(root / "response.json").write_text(json.dumps(result, indent=2) + "\n")
print(json.dumps({"model": result.get("model"), "usage": result.get("usage"),
                  "elapsed_ms": round((time.perf_counter() - started) * 1000),
                  "answers": result.get("answers")}, indent=2))
