#!/usr/bin/env python3
"""Verifikasi hasil schedule hc27 — cek cluster jadwal 3 akun StudioSoft di slot tsb."""
import json, os, sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from repliz_client import ReplizClient, ACC

c = ReplizClient()
ACCS = {
    ACC.STUDIOSOFT_THREADS: "SS-Threads",
    ACC.STUDIOSOFT_LINKEDIN: "SS-LinkedIn",
    ACC.STUDIOSOFT_FB: "SS-FB",
}
WINDOW = ("2026-09-10T15:59", "2026-09-10T16:04")  # UTC sekitar slot 23:00 WIB 10 Sep

found = []
page = 1
while True:
    d = c.get(f"/public/schedule?page={page}&limit=100")
    docs = d.get("docs", [])
    for s in docs:
        aid = s.get("accountId")
        if aid not in ACCS:
            continue
        st = s.get("scheduleAt", "")
        if WINDOW[0] <= st[:16] <= WINDOW[1]:
            found.append(s)
    if page >= (d.get("totalPages") or 1):
        break
    page += 1

found.sort(key=lambda s: (s.get("scheduleAt", ""), ACCS.get(s.get("accountId"), "")))
print("total jadwal di window:", len(found))
for s in found:
    med = s.get("medias") or []
    rpl = s.get("replies") or []
    print("-" * 70)
    print("id:", s.get("_id") or s.get("id"))
    print("acc:", ACCS.get(s.get("accountId")), "| status:", s.get("status"),
          "| type:", s.get("type"))
    print("scheduleAt:", s.get("scheduleAt"))
    print("title:", (s.get("title") or "")[:80])
    print("desc len:", len(s.get("description") or ""),
          "| desc[:70]:", (s.get("description") or "")[:70].replace("\n", " / "))
    print("medias:", len(med), "| replies:", len(rpl))
    for m in med:
        print("   media:", m.get("url"))
    for r in rpl:
        if isinstance(r, dict):
            print("   reply->", (r.get("text") or "")[:60])
        else:
            print("   reply->", str(r)[:60])
