#!/usr/bin/env python3
"""Repliz: uji PUT dengan objek jadwal utuh (hasil GET) yang hanya diubah scheduleAt-nya."""
import json, sys

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
sys.path.insert(0, WS)
from repliz_client import get_client, ACC          # noqa: E402

NAMA = {getattr(ACC, n): n for n in dir(ACC) if not n.startswith("_")}
client = get_client()
SID = "6a6fe60c50cb499ee50b04f5"          # draf parkir LEIT_FB (bahan uji)
SLOT = "2026-10-05T02:00:00.000Z"

lama = client.get_schedule(SID)
print("sebelum:", lama.get("scheduleAt"), "| status:", lama.get("status"))
print("kunci objek:", sorted(lama.keys()))

badan = dict(lama)
badan["scheduleAt"] = SLOT
for k in ("_id", "id", "createdAt", "updatedAt", "__v"):
    badan.pop(k, None)
print(f"\nmengirim PUT dengan {len(badan)} kunci (tanpa _id/createdAt/updatedAt)")

try:
    hasil = client._request("PUT", f"/public/schedule/{SID}", badan)
    print("   hasil:", json.dumps(hasil)[:300] if isinstance(hasil, (dict, list)) else str(hasil)[:300])
except Exception as e:
    print("   gagal:", str(e)[:250])

print("\n=== verifikasi ===")
try:
    cek = client.get_schedule(SID)
    print("   scheduleAt sekarang:", cek.get("scheduleAt"), "| status:", cek.get("status"))
    print("   cocok dengan yang dikirim:", str(cek.get("scheduleAt"))[:16] == SLOT[:16])
except Exception as e:
    print("   gagal baca ulang:", str(e)[:120])
