#!/usr/bin/env python3
"""Cek hipotesis: jadwal 'anak reply' menyimpan id INDUK sebagai dict char-demi-char di field replies.
Pakai: python3 _cek_anak_reply2.py [dump.json]
"""
import json, sys, collections
f = sys.argv[1] if len(sys.argv) > 1 else '/tmp/threads_reply_dump.json'
docs = json.load(open(f))
by_id = {d.get('_id'): d for d in docs}


def induk(d):
    for r in d.get("replies") or []:
        if isinstance(r, dict):
            k = [x for x in r.keys() if x.isdigit()]
            if len(k) >= 8 and len(k) < 40:
                return "".join(str(r[x]) for x in sorted(k, key=int))
    return None


anak = []
for d in docs:
    p = induk(d)
    if p:
        anak.append((d, p))
print(f"jadwal dengan penanda induk: {len(anak)} / {len(docs)}")
per_akun = collections.Counter()
pasangan = 0
for d, p in anak:
    per_akun[d.get("accountId")] += 1
    if p in by_id:
        pasangan += 1
print("induk ditemukan di dump:", pasangan)
for d, p in anak[:12]:
    ind = by_id.get(p, {})
    print(f"  anak={d.get('_id')} ({d.get('scheduleAt','')[11:16]}Z) induk={p} "
          f"({'ADA' if ind else 'tidak ada'}) | {((d.get('description') or '')[:60]).replace(chr(10),' ')}")
print("\nper akun:", dict(per_akun))
