#!/usr/bin/env python3
"""Cek cepat: postingan Threads BARU (createdAt >= 2026-10-16) per akun per hari > 1."""
import json
from collections import defaultdict
from datetime import datetime, timezone, timedelta

import repliz_client as rc

AKUN = {
    rc.ACC.UKY_THREADS: "uky",
    rc.ACC.STUDIOSOFT_THREADS: "ss",
    rc.ACC.TSLAW_THREADS: "tslaw",
    rc.ACC.DAS_IG: "das",
    rc.ACC.TSC_THREADS: "tsc",
    rc.ACC.EVERYBE_THREADS: "everybe",
}

c = rc.ReplizClient()
rows, page = [], 1
while True:
    r = c.get_schedules(page=page, limit=100)
    docs = r.get("docs") or r.get("data") or []
    if not docs:
        break
    rows.extend(docs)
    if page >= (r.get("totalPages") or 1):
        break
    page += 1

hitung = defaultdict(list)
for d in rows:
    acc = (d.get("account") or {}).get("_id") or (d.get("account") or {}).get("id")
    if acc not in AKUN:
        continue
    ca = d.get("createdAt") or ""
    if str(ca)[:10] < "2026-10-16":
        continue
    if d.get("status") in ("reply", "draft"):
        continue
    sa = d.get("scheduleAt") or ""
    try:
        dt = datetime.fromisoformat(sa.replace("Z", "+00:00")) + timedelta(hours=7)
    except Exception:
        continue
    hitung[(AKUN[acc], dt.strftime("%Y-%m-%d"))].append((dt.strftime("%H:%M"), d.get("_id") or d.get("id"), d.get("status")))

lebih = {f"{k[0]} {k[1]}": v for k, v in sorted(hitung.items()) if len(v) > 1}
print(f"total jadwal baru (createdAt>=2026-10-16): {sum(len(v) for v in hitung.values())} di {len(hitung)} akun-hari")
if lebih:
    for k, v in lebih.items():
        print("⚠️", k, v)
else:
    print("✅ tidak ada akun dengan >1 postingan baru per hari")
