import urllib.request
import urllib.error
import json

API_KEY = "KEY019BE7A3A2D749FCA8681CFF8448A7F0_vTMM1n77CtQxLDT2ra3P1z"
BASE = "https://api.telnyx.com/v2"
GEORGE_ASSISTANT_ID = "assistant-6f6f4ca2-3155-4930-95cb-27f59514af3e"
NUMBER = "+61731304377"

def req(method, path, body=None):
    data = json.dumps(body).encode() if body else None
    r = urllib.request.Request(
        f"{BASE}{path}",
        data=data,
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json"
        },
        method=method
    )
    try:
        resp = urllib.request.urlopen(r, timeout=10)
        return json.loads(resp.read()), None
    except urllib.error.HTTPError as e:
        return None, f"HTTP {e.code}: {e.read().decode()}"

# Step 1: Assign number to George's assistant
print(f"Assigning {NUMBER} to George's assistant (Sarah / Bunker FNQ)...")
result, err = req("POST", f"/ai/assistants/{GEORGE_ASSISTANT_ID}/phone_numbers", {
    "phone_number": NUMBER
})
if err:
    print(f"ERROR: {err}")
    # Try PATCH instead
    print("Trying PATCH on phone number to update connection...")
    result2, err2 = req("PATCH", f"/phone_numbers/{NUMBER.replace('+', '%2B')}", {
        "connection_id": GEORGE_ASSISTANT_ID
    })
    if err2:
        print(f"PATCH also failed: {err2}")
    else:
        print("PATCH success:", json.dumps(result2, indent=2))
else:
    print("SUCCESS:", json.dumps(result, indent=2))

# Step 2: Verify
print("\nVerifying assignment...")
r2, e2 = req("GET", f"/ai/assistants/{GEORGE_ASSISTANT_ID}")
if e2:
    print(f"Verify error: {e2}")
else:
    phones = r2.get("data", {}).get("phone_numbers", [])
    print(f"Phone numbers on George's assistant: {phones}")
