import json
import os
from pathlib import Path
import httpx
from typing import Literal
from pydantic import BaseModel


class Decision(BaseModel, extra="forbid"):
    status: Literal["accepted", "rejected"]
    reason: Literal["none", "missing_details"]

schema = json.loads(Path("conditional.schema.json").read_text())

response = httpx.post(
    "https://api.blatent.ai" + "/v1/resolve",
    headers={"Authorization": f"Bearer {os.environ['BLATENT_API_KEY']}"},
    json={
        "input": "All required request details have been supplied.",
        "schema": schema,
    },
    timeout=195,
)
response.raise_for_status()
result = Decision.model_validate(response.json()["output"], strict=True)
print(result.model_dump_json(indent=2))
