#!/usr/bin/env python3
"""Hitung jadwal Repliz yang masih menunggu per akun, dan tandai akun klien yang sudah berhenti."""
import sys
from collections import defaultdict

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

BERHENTI = ("LEIT", "NUCLEA", "OTTO", "PAMEKASAN", "OBP", "EKADUTA", "MERR", "METAMORF", "SUMU")

nama = {getattr(ACC, n): n for n in dir(ACC) if not n.startswith("_")}
c = get_client()

jumlah = defaultdict(int)
for aid, nm in nama.items():
    try:
        d = c.get_schedules(accountId=aid, limit=100)
    except Exception as e:
        jumlah[nm] = f"gagal {str(e)[:24]}"
        continue
    daftar = d.get("docs") if isinstance(d, dict) else d
    if isinstance(daftar, dict):
        daftar = daftar.get("docs", [])
    daftar = daftar or []
    belum = [x for x in daftar if str(x.get("status", "")).lower() in ("pending", "scheduled", "queue", "waiting")]
    jumlah[nm] = len(belum)

print(f"{'akun':<22}{'menunggu':>9}   status")
for nm in sorted(jumlah, key=lambda k: (not any(b in k.upper() for b in BERHENTI), k)):
    b = jumlah[nm]
    tanda = " ← KLIEN BERHENTI" if any(x in nm.upper() for x in BERHENTI) else ""
    print(f"{nm:<22}{str(b):>9}{tanda}")
