#!/usr/bin/env python3
"""Lihat jadwal pending/akan datang per akun Threads (window beberapa hari)."""
import json, sys
from datetime import datetime, timedelta, timezone

WIB = timezone(timedelta(hours=7))
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import ACC

ACCS = {
    "studiosoft": ACC.STUDIOSOFT_THREADS,
    "uky": ACC.UKY_THREADS,
    "tslaw": ACC.TSLAW_THREADS,
    "tsc": ACC.TSC_THREADS,
    "das": ACC.DAS_THREADS,
}

docs = json.load(open(sys.argv[1] if len(sys.argv) > 1 else "/tmp/repliz_all_20260929b.json"))
if isinstance(docs, dict):
    docs = docs.get("docs", docs.get("data", []))
now = datetime.now(WIB)
for key, aid in ACCS.items():
    rows = []
    for d in docs:
        if d.get("accountId") != aid:
            continue
        try:
            dt = datetime.fromisoformat((d.get("scheduleAt") or "").replace("Z", "+00:00")).astimezone(WIB)
        except Exception:
            continue
        if now <= dt <= now + timedelta(days=4):
            rows.append((dt.strftime("%m-%d %H:%M"), d.get("status"), d.get("type"),
                         (d.get("description") or "")[:60].replace("\n", " ")))
    print("\n== %s (%d upcoming 4 hari) ==" % (key, len(rows)))
    for r in sorted(rows):
        print("  ", r)
