#!/usr/bin/env python3
"""Cek rantai jadwal feed IG StudioSoft 26-31 Okt 2026 (read-only)."""
import sys
from datetime import datetime, timedelta, timezone

import repliz_client as rc

ACC = "6a38ac33c5ff4ce3a3231232"
WIB = timezone(timedelta(hours=7))


def ambil_semua(client):
    out, page = [], 1
    while True:
        r = client.get_schedules(page=page, limit=100)
        docs = r.get("docs") or r.get("data") or []
        if not docs:
            break
        out.extend(docs)
        if len(docs) < 100 or len(out) >= (r.get("totalDocs") or 0):
            break
        page += 1
    return out


def main():
    c = rc.get_client()
    semua = ambil_semua(c)
    rows = [s for s in semua if s.get("accountId") == ACC
            and str(s.get("scheduleAt", "")) >= "2026-10-26"
            and str(s.get("scheduleAt", "")) < "2026-11-02"]
    per = {}
    for s in rows:
        if s.get("status") in ("error", "draft"):
            continue
        dt = datetime.fromisoformat(str(s.get("scheduleAt")).replace("Z", "+00:00")).astimezone(WIB)
        tipe = s.get("type")
        jam = dt.strftime("%H:%M")
        med = (s.get("medias") or [{}])[0].get("url", "") or ""
        nama = med.rsplit("/", 1)[-1] if med else "-"
        per.setdefault(dt.strftime("%Y-%m-%d"), []).append((jam, tipe, nama, s.get("status")))
    print(f"total jadwal IG SS 26 Okt-1 Nov: {len(rows)}")
    for d in sorted(per):
        items = sorted(per[d])
        print(f"\n{d}: {len(items)} slot")
        for jam, tipe, nama, st in items:
            print(f"  {jam} {tipe:6s} {st:8s} {nama[:52]}")
    hari = ["2026-10-%02d" % d for d in range(26, 32)] + ["2026-11-01"]
    print("\n--- ringkas ---")
    for d in hari:
        ada_al = [x for x in per.get(d, []) if x[1] == "album"]
        print(f"{d}: album {len(ada_al)} | total slot {len(per.get(d, []))}")
    return 0


if __name__ == "__main__":
    sys.exit(main())
