#!/usr/bin/env python3
"""Verify TS Law pending schedules for 8 Sep 2026 (WIB) — LinkedIn, Threads, FB."""
import json, urllib.request
from datetime import datetime, timezone, timedelta
from repliz_client import HEADERS, BASE

ACC_LI = "6a60101562caae1e04e901ac"
ACC_TH = "6a35f8b7c5ff4ce3a322b2ed"
ACC_FB = "6a3b41d1c5ff4ce3a32753e8"

WIB = timezone(timedelta(hours=7))

def fetch_all():
    out, page = [], 1
    while True:
        url = f"{BASE}/public/schedule?limit=100&page={page}"
        req = urllib.request.Request(url, headers=HEADERS)
        with urllib.request.urlopen(req, timeout=30) as r:
            data = json.loads(r.read().decode())
        rows = data.get("data") or data.get("results") or data.get("docs") or []
        out.extend(rows)
        total = data.get("totalDocs") or data.get("total") or 0
        if len(out) >= total or not rows:
            break
        page += 1
    return out

rows = fetch_all()
print(f"total schedules fetched: {len(rows)}")

# WIB dates of interest
for label, acc in [("LINKEDIN", ACC_LI), ("THREADS", ACC_TH), ("FB", ACC_FB)]:
    mine = [r for r in rows if r.get("accountId") == acc]
    pend = [r for r in mine if str(r.get("status", "")).lower() in ("pending", "draft", "scheduled")]
    pend_sorted = sorted(pend, key=lambda r: r.get("scheduleAt", ""))
    # pending from 2026-09-07T17:00Z (=8 Sep 00:00 WIB) to 2026-09-08T24:00Z end
    print(f"\n=== TS Law {label} (acc {acc}) ===")
    print(f"  total schedules: {len(mine)}, pending/draft: {len(pend)}")
    for r in pend_sorted[:8]:
        sa = r.get("scheduleAt", "")
        # convert to WIB display
        try:
            dt = datetime.fromisoformat(sa.replace("Z", "+00:00")).astimezone(WIB)
            sa_wib = dt.strftime("%Y-%m-%d %H:%M WIB")
        except Exception:
            sa_wib = sa
        title = (r.get("title") or "")[:60]
        desc = (r.get("description") or "")[:70].replace("\n", " ")
        media = [m.get("url", "") for m in (r.get("medias") or [])]
        print(f"  • {sa_wib} | {r.get('status')} | id={r.get('_id') or r.get('id')} | {title}")
        print(f"      desc: {desc}")
        if media:
            print(f"      media: {media[0][:90]}")
