#!/usr/bin/env python3
"""DAS — susun rencana konsolidasi: satu halaman kanonik per klaster, sisanya digabung/dipensiunkan."""
import json, re
from collections import defaultdict

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
data = json.load(open(f"{WS}/drafts/das_peta_konten.json"))

# hanya halaman "uang" (slug bengkel-*) yang dibahas di sini
uang = [x for x in data if x["uang"]]

klaster = defaultdict(list)
for x in uang:
    k = x["klaster"] if x["klaster"] != "lain" else "umum"
    klaster[k].append(x)

print("=== rencana konsolidasi halaman uang ===")
rencana = {}
for k, isi in sorted(klaster.items(), key=lambda x: -sum(y["tayang"] for y in x[1])):
    isi.sort(key=lambda x: -x["tayang"])
    kanonik = isi[0]
    lain = isi[1:]
    rencana[k] = {"kanonik": kanonik, "lain": lain}
    print(f"\n■ klaster {k} ({len(isi)} halaman, total {sum(y['tayang'] for y in isi)} tayangan)")
    print(f"   KANONIK  {kanonik['tayang']:>5} tayang | {kanonik['klik']:>3} klik | {kanonik['kata']:>4} kata | /{kanonik['slug']}")
    for y in lain:
        alasan = ("nol tayangan" if y["tayang"] == 0 else
                  f"{y['tayang']} tayangan" + (" (sangat kecil)" if y["tayang"] < 50 else ""))
        print(f"   gabung   {y['tayang']:>5} tayang | {y['klik']:>3} klik | {y['kata']:>4} kata | /{y['slug'][:66]} ← {alasan}")

# artikel non-uang yang tipis dan nol tayangan
tipis = [x for x in data if not x["uang"] and x["kata"] < 500]
nol = [x for x in data if not x["uang"] and x["tayang"] == 0]
print(f"\n=== artikel pendukung ===")
print(f"   tipis (<500 kata): {len(tipis)}")
print(f"   nol tayangan: {len(nol)}")
print(f"   tipis DAN nol tayangan: {len([x for x in tipis if x['tayang'] == 0])} ← kandidat pensiun pertama")

json.dump({"klaster": {k: {"kanonik": v["kanonik"]["id"], "gabung": [y["id"] for y in v["lain"]]}
                       for k, v in rencana.items()},
           "tipis": [x["id"] for x in tipis], "nol": [x["id"] for x in nol]},
          open(f"{WS}/drafts/das_rencana_konsolidasi.json", "w"), ensure_ascii=False, indent=1)

with open(f"{WS}/drafts/das_rencana_konsolidasi.md", "w") as f:
    f.write("# DAS — rencana konsolidasi konten (7 Okt 2026)\n\n")
    f.write("Satu halaman kanonik per klaster. Halaman lain digabung isinya lalu dipensiunkan jadi draf\n")
    f.write("(butuh pengalihan 301 dari Bos lewat plugin Redirection).\n\n")
    for k, v in rencana.items():
        n = v["kanonik"]
        f.write(f"## Klaster {k}\n\n")
        f.write(f"- **KANONIK**: `/{n['slug']}` | {n['kata']} kata | {n['tayang']} tayangan | {n['klik']} klik\n")
        for y in v["lain"]:
            f.write(f"- gabung: `/{y['slug']}` | {y['kata']} kata | {y['tayang']} tayangan\n")
        f.write("\n")
print("\n→ drafts/das_rencana_konsolidasi.json + .md")
