#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Perbarui caption 24 jadwal bank DAS yang sudah terpasang: nada "aku" -> "kami".

Menjalankan ulang `rencana()` (bank sudah diperbaiki) lalu PUT description ke
jadwal yang cocok (tgl + jam), baca balik, verifikasi.

Pakai: python3 perbarui_nada_das.py [--go]
"""
import json, sys, re
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import get_client
import pasang_bank_das_threads as P

hasil = json.load(open("bank_das_threads_hasil.json"))
peta = {(h["tgl"], h["jam"]): h["id"] for h in hasil if h.get("id")}
tugas = P.rencana(12)

c = get_client()
go = "--go" in sys.argv
berubah = gagal = 0
for t in tugas:
    sid = peta.get((t["tgl"], t["jam"]))
    if not sid:
        print("  ⚠️ tidak ada id untuk", t["tgl"], t["jam"])
        continue
    if t["masalah"]:
        print("  ⚠️ entri bermasalah, dilewati:", t["tgl"], t["jam"], t["masalah"])
        continue
    lama = c.get_schedule(sid)
    b = lama.get("data", lama) if isinstance(lama, dict) else lama
    lama_desc = b.get("description") or ""
    if lama_desc == t["text"]:
        print(f"  ⏭️  {t['tgl']} {t['jam']:02d}:00 sudah sama")
        continue
    if not go:
        print(f"  (dry) {t['tgl']} {t['jam']:02d}:00 {len(lama_desc)} -> {len(t['text'])} char")
        continue
    c.update_schedule(sid, {"description": t["text"]})
    b2 = c.get_schedule(sid)
    bb = b2.get("data", b2) if isinstance(b2, dict) else b2
    d2 = bb.get("description") or ""
    tag = re.findall(r"#(\w+)", d2)
    ok = (d2 == t["text"] and bb.get("status") == "pending" and len(d2) <= 500
          and tag and all(x == x.lower() for x in tag) and len(bb.get("replies") or []) == 1)
    berubah += 1 if ok else 0
    gagal += 0 if ok else 1
    print(f"  {'✅' if ok else '❌'} {t['tgl']} {t['jam']:02d}:00 len={len(d2)} tags={len(tag)} status={bb.get('status')}")

if go:
    print(f"\nselesai: diperbarui {berubah} | gagal {gagal}")
