#!/usr/bin/env python3
"""Verifikasi uji 21 hari: cek 15 jadwal baru benar-benar pindah ke 09:30 dan captionnya berganti."""
import json, sys
from collections import Counter
from datetime import datetime, timedelta, timezone

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
sys.path.insert(0, WS)
from repliz_client import get_client, ACC          # noqa: E402

client = get_client()
semua, page = [], 1
while True:
    d = client.get_schedules(page=page, limit=100)
    rows = d.get("docs", []) if isinstance(d, dict) else []
    semua += rows
    if len(rows) < 100:
        break
    page += 1

sekarang = datetime.now(timezone.utc)
akhir = sekarang + timedelta(days=22)
jadwal = []
for s in semua:
    if s.get("accountId") != ACC.UKY_THREADS or s.get("status") != "pending":
        continue
    kapan = str(s.get("scheduleAt") or "")
    if kapan >= "2090":
        continue
    try:
        t = datetime.fromisoformat(kapan.replace("Z", "+00:00"))
    except Exception:
        continue
    if sekarang <= t <= akhir:
        wib = t + timedelta(hours=7)
        jadwal.append((wib, str(s.get("description") or "")[:60]))

jam = Counter(j.strftime("%H:%M") for j, _ in jadwal)
print("=== sebaran jam @ukyhandoko (22 hari ke depan, WIB) ===")
for j in sorted(jam):
    print(f"   {j} → {jam[j]} post")
print(f"   total: {len(jadwal)} post | rata-rata {round(len(jadwal)/22, 1)}/hari")

print("\n=== 09:30 (slot uji) ===")
for j, t in sorted([x for x in jadwal if x[0].strftime("%H:%M") == "09:30"]):
    print(f"   {j.strftime('%d %b %H:%M')} | {t[:66]}")

print("\n=== 23:00 (slot lama — harus kosong) ===")
sisa = [x for x in jadwal if x[0].strftime("%H:%M") == "23:00"]
print(f"   {len(sisa)} jadwal" if sisa else "   ✅ kosong, tidak ada yang tertinggal")
