#!/usr/bin/env python3
"""Cek jadwal CAROUSEL (type=album) semua akun TS Law di Repliz."""
import sys, json
from datetime import datetime, timezone, timedelta

sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import ReplizClient, ACC

AKUN = {
    "tslaw_ig": ACC.TSLAW_IG,
    "tslaw_fb": ACC.TSLAW_FB,
    "tslaw_threads": ACC.TSLAW_THREADS,
    "tslaw_linkedin": ACC.TSLAW_LINKEDIN,
}
NAMA = {v: k for k, v in AKUN.items()}
WIB = timezone(timedelta(hours=7))

c = ReplizClient()
all_rows = []
page = 1
while True:
    r = c.get(f"/public/schedule?page={page}&limit=100")
    docs = r.get("docs", [])
    if not docs:
        break
    all_rows.extend(docs)
    if page >= r.get("totalPages", 1):
        break
    page += 1

print(f"total jadwal di akun: {len(all_rows)}")
now = datetime.now(timezone.utc)


def judul(d):
    return (d.get("title") or d.get("description") or "")[:70].replace("\n", " ")


for key, aid in AKUN.items():
    rows = [d for d in all_rows if d.get("accountId") == aid]
    alb = [d for d in rows if str(d.get("type", "")).lower() == "album"]
    print(f"\n=== {key} ({aid}) — total {len(rows)} jadwal, album/carousel {len(alb)}")
    for d in sorted(alb, key=lambda x: x.get("scheduleAt") or ""):
        sat = d.get("scheduleAt") or ""
        try:
            dt = datetime.fromisoformat(sat.replace("Z", "+00:00")).astimezone(WIB)
            sat_wib = dt.strftime("%Y-%m-%d %H:%M WIB")
        except Exception:
            sat_wib = sat
        medias = d.get("medias") or []
        print(f"  [{d.get('status')}] {sat_wib} | id={d.get('_id')} | media={len(medias)} | {judul(d)}")
