#!/usr/bin/env python3
"""Hentikan semua jadwal Repliz milik EveryBe (klien sudah tidak kerjasama).

Cadangkan dulu isi jadwalnya, baru hapus. Tanpa argumen = lihat saja; --go = kerjakan.
"""
import json, sys, time

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

GO = "--go" in sys.argv
AKUN = {getattr(ACC, n): n for n in dir(ACC) if n.startswith("EVERYBE")}
print("akun EveryBe:", list(AKUN.values()))

c = get_client()
semua, hal = [], 1
while hal <= 10:
    try:
        d = c.get_schedules(page=hal, limit=100)
    except Exception as e:
        print("gagal ambil jadwal:", str(e)[:80])
        break
    docs = d.get("docs") or []
    if not docs:
        break
    semua += docs
    if len(docs) < 100:
        break
    hal += 1

milik = [x for x in semua if x.get("accountId") in AKUN]
print(f"total jadwal terbaca: {len(semua)} · milik EveryBe: {len(milik)}")
for x in milik[:10]:
    print(f"   {AKUN.get(x.get('accountId')):<16} {str(x.get('scheduledAt'))[:16]} "
          f"{str(x.get('status')):<10} {str(x.get('description'))[:50]}")

if not milik:
    sys.exit(0)

json.dump(milik, open(f"{WS}/drafts/everybe_jadwal_backup.json", "w"), ensure_ascii=False, indent=1)
print(f"cadangan isi jadwal → drafts/everybe_jadwal_backup.json")

if not GO:
    print("\n(uji — pakai --go untuk menghapus jadwal EveryBe)")
    sys.exit(0)

hapus = 0
for x in milik:
    try:
        c.delete_schedule(x["id"])
        hapus += 1
    except Exception as e:
        print(f"   gagal hapus {x.get('id')}: {str(e)[:60]}")
    time.sleep(0.3)
print(f"\n✅ {hapus} jadwal EveryBe dihapus")
