#!/usr/bin/env python3
"""Offboarding Otomasi Bisnis Pintar + Ekaduta: cek Repliz dan semua rujukan di cron/konfigurasi."""
import json, re, sys
from collections import Counter

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

NAMA = {getattr(ACC, n): n for n in dir(ACC) if not n.startswith("_")}
KATA = re.compile(r"otomasi|bisnispintar|otomasibisnis|ekaduta|eka\s*duta", re.I)
client = get_client()

print("=== 1. akun Repliz yang berkaitan ===")
d = client.get("/public/account?page=1&limit=100")
docs = d.get("docs", []) if isinstance(d, dict) else []
temuan = [a for a in docs if KATA.search(str(a.get("name") or ""))]
if temuan:
    for a in temuan:
        print(f"   {a['_id']} | {a.get('name')} | platform {a.get('platform')} | ACC: {NAMA.get(a['_id'], '?')}")
else:
    print("   tidak ada akun untuk kedua brand ✅")

print("\n=== 2. jadwal Repliz milik akun tersebut ===")
ids = {a["_id"] for a in temuan} | {getattr(ACC, n) for n in dir(ACC) if not n.startswith("_") and KATA.search(n)}
semua = []
page = 1
while True:
    dd = client.get_schedules(page=page, limit=100)
    rows = dd.get("docs", []) if isinstance(dd, dict) else []
    semua += rows
    if len(rows) < 100:
        break
    page += 1
milik = [s for s in semua if s.get("accountId") in ids]
print(f"   total jadwal: {len(semua)} | milik akun tsb: {len(milik)}")
if milik:
    print("   status:", dict(Counter(s.get("status") for s in milik)))

print("\n=== 3. rujukan di cron ===")
for f in ("/home/mantapman/.hermes/cron/jobs.json",
          "/home/mantapman/.hermes/profiles/atun/cron/jobs.json"):
    try:
        j = json.load(open(f))
        for job in (j.get("jobs") or []):
            if KATA.search(json.dumps(job)):
                print(f"   {f.split('/')[-2]} | {job.get('name')} | {job.get('id')} | aktif={job.get('enabled')}")
    except Exception as e:
        print("   gagal:", str(e)[:60])

print("\n=== 4. rujukan di berkas kerja ===")
import glob, os
for f in [f"{WS}/kpi_konfigurasi_klien.py", f"{WS}/drafts/cron_literatur.txt",
          f"{WS}/drafts/cron_wprocket_baru.txt"]:
    try:
        isi = open(f).read()
        n = len(KATA.findall(isi))
        print(f"   {os.path.basename(f):<30} {n} sebutan")
    except Exception as e:
        print(f"   {os.path.basename(f)}: {str(e)[:40]}")
