import json, urllib.request, urllib.error

PB = "http://localhost:8102"

def post(path, data, token=None):
    req = urllib.request.Request(PB + path, data=json.dumps(data).encode(),
        headers={"Content-Type": "application/json", **({"Authorization": token} if token else {})})
    return json.load(urllib.request.urlopen(req))

def get(path, token=None):
    req = urllib.request.Request(PB + path, headers={"Authorization": token} if token else {})
    return json.load(urllib.request.urlopen(req))

def patch(path, data, token):
    req = urllib.request.Request(PB + path, data=json.dumps(data).encode(),
        headers={"Content-Type": "application/json", "Authorization": token}, method="PATCH")
    return json.load(urllib.request.urlopen(req))

tok = post("/api/collections/_superusers/auth-with-password",
           {"identity": "edelmar.edd@gmail.com", "password": "564712564712"})["token"]

col = get("/api/collections/consultas", tok)
fields = col["fields"]
names = {f["name"] for f in fields}
added = []

if "created" not in names:
    fields.append({"name": "created", "type": "autodate", "onCreate": True, "onUpdate": False})
    added.append("created")
if "updated" not in names:
    fields.append({"name": "updated", "type": "autodate", "onCreate": True, "onUpdate": True})
    added.append("updated")

if added:
    patch(f"/api/collections/{col['id']}", {"fields": fields}, tok)
    print("Campos autodate AGREGADOS:", ", ".join(added))
else:
    print("created/updated ya existian. Nada que hacer.")

# Verificar que el sort que usa el frontend ahora funciona
try:
    r = get("/api/collections/consultas/records?perPage=5&sort=-fecha,-created", tok)
    print(f"OK sort '-fecha,-created' funciona. {r['totalItems']} consultas en total.")
except urllib.error.HTTPError as e:
    print("Sigue fallando el sort:", e.code, e.read().decode()[:200])
