#!/usr/bin/env python3
"""hc56 audit: dump jadwal + jejak T/LI/FB per artikel HC + artikel baru + slot 09:00."""
import json, re, sys
from datetime import datetime, timezone
WS = "/home/mantapman/.hermes/profiles/atun/workspace"
sys.path.insert(0, WS)
from repliz_client import ReplizClient, ACC

c = ReplizClient()
docs = []
page = 1
while True:
    d = c.get("/public/schedule?page=%d&limit=100" % page)
    docs.extend(d.get("docs", []))
    if page >= (d.get("totalPages") or 1):
        break
    page += 1
print("dump %d docs" % len(docs))
json.dump(docs, open("/tmp/repliz_all_20261005.json", "w"))

url_re = re.compile(r"studiosoft\.id/([a-z0-9\-]+)")
HC = ["digital-marketing-rumah-sakit-indikator", "seo-rumah-sakit", "jasa-digital-marketing-rs",
      "pembuatan-website-rumah-sakit", "jasa-digital-marketing-klinik",
      "panduan-seo-klinik-rumah-sakit", "google-business-profile-klinik",
      "cara-klinik-kecantikan-di-surabaya-bisa-ditemukan-lebih-cepat-di-google",
      "strategi-seo-terbaik-untuk-klinik-kecantikan-di-surabaya-tingkatkan-pasien-lewat-google",
      "7-aplikasi-mental-health-anak-usia-4-10-tahun-yang-harus-dicoba-orang-tua",
      "10-channel-digital-marketing-rumah-sakit-yang-wajib-dikelola-di-era-online",
      "7-strategi-digital-marketing-rumah-sakit-untuk-menambah-pasien-setiap-bulan",
      "rs-klinik-digital-marketing-2026",
      "9-contoh-konten-digital-marketing-rumah-sakit-yang-edukatif-dan-tetap-etis",
      "tips-seo-digital-marketing-surabaya-optimasi-local-untuk-klinik-dan-bengkel-lokal"]


def slugs_of(d):
    return url_re.findall((d.get("description") or "") + " " + (d.get("title") or ""))


accs = {"T": ACC.STUDIOSOFT_THREADS, "LI": ACC.STUDIOSOFT_LINKEDIN, "FB": ACC.STUDIOSOFT_FB}
print("\n== JEJAK per artikel HC (semua status) ==")
for s in HC:
    row = []
    for k, aid in accs.items():
        hits = [d for d in docs if d.get("accountId") == aid and s in slugs_of(d)]
        succ = [d for d in hits if (d.get("status") or "").lower() == "success"]
        pend = [d for d in hits if (d.get("status") or "").lower() in ("pending", "scheduled", "draft")]
        last = max([(d.get("scheduleAt") or "") for d in succ], default="-")
        row.append("%s:tot%d succ%d pend%d last=%s" % (k, len(hits), len(succ), len(pend), last[:16]))
    print(" ", s)
    print("     " + " | ".join(row))

print("\n== LI queue slugs (pending) ==")
li = set()
for d in docs:
    if d.get("accountId") == ACC.STUDIOSOFT_LINKEDIN and (d.get("status") or "").lower() in ("pending", "scheduled", "draft"):
        li |= set(slugs_of(d))
print(" distinct LI slugs:", len(li))
print(" digital-marketing-rumah-sakit-indikator in LI queue?", "digital-marketing-rumah-sakit-indikator" in li)

print("\n== THREADS 09:00 WIB (02:00Z) booked ==")
booked = sorted(set((d.get("scheduleAt") or "")[:16] for d in docs
                    if d.get("accountId") == ACC.STUDIOSOFT_THREADS
                    and (d.get("scheduleAt") or "")[11:16] == "02:00"
                    and (d.get("status") or "").lower() in ("pending", "scheduled", "draft")))
print(" ", booked)

print("\n== FB 19:30 WIB (12:30Z) booked ==")
fbb = sorted(set((d.get("scheduleAt") or "")[:16] for d in docs
                 if d.get("accountId") == ACC.STUDIOSOFT_FB
                 and (d.get("scheduleAt") or "")[11:16] == "12:30"
                 and (d.get("status") or "").lower() in ("pending", "scheduled", "draft")))
print(" ", fbb)

print("\n== LI 23:00 WIB (16:00Z) booked ==")
lib = sorted(set((d.get("scheduleAt") or "")[:16] for d in docs
                 if d.get("accountId") == ACC.STUDIOSOFT_LINKEDIN
                 and (d.get("scheduleAt") or "")[11:16] == "16:00"
                 and (d.get("status") or "").lower() in ("pending", "scheduled", "draft")))
print(" ", lib)
