# -*- coding: utf-8 -*-
"""
Threads Tanya RSIA Scheduler — HARIAN
Posting 1 pertanyaan per hari ke @rsiakendangsari, bergantian dari SEMUA akun Threads
(ukyhandoko, studiosoft, leit, tslaw, das, tsc). Mention @rsiakendangsari.
Topik: niche RSIA Ibu & Anak — bayi usia 0-2 tahun.
Sesekali pujian: Google Review bagus, followers IG banyak, Google Rank 1,
sukses kelola digital marketing & social media.

⚠️ DISABLED PERMANEN — 27 Agustus 2026 (instruksi Bos):
STOP semua mention @rsiakendangsari. Script ini TIDAK BOLEH dijalankan lagi.
Cron juga sudah di-comment di crontab. Kalau mau diaktifkan, WAJIB tanya Bos dulu.
"""
import os, sys, json, time

print("⛔ DISABLED: threads_tanya_rsia_scheduler.py dimatikan permanen atas instruksi Bos (27 Agu 2026). Mention @rsiakendangsari STOP.")
sys.exit(0)
from datetime import datetime, timezone, timedelta

sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from repliz_client import ReplizClient, ACC
from threads_text_check import cek_teks_threads, ThreadsTextError

WIB = timezone(timedelta(hours=7))
JAM_HARIAN = 8  # 08:00 WIB
TRACKER = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                       ".threads_tanya_rsia_tracker.json")
LOG = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                   "threads_tanya_rsia_log.txt")

# ── Daftar pertanyaan: semua akun, bergantian ──
AKUN = {
    "ukyhandoko": ACC.UKY_THREADS,
    "studiosoft": ACC.STUDIOSOFT_THREADS,
    "leit": ACC.LEIT_THREADS,
    "tslaw": ACC.TSLAW_THREADS,
    "das": ACC.DAS_THREADS,
    "tsc": ACC.TSC_THREADS,
}

PERTANYAAN = [
    # ── @ukyhandoko ──
    {
        "akun": "ukyhandoko",
        "teks": ("Halo @rsiakendangsari, saya ayah baru dengan anak pertama usia 4 bulan. "
                 "Anak saya sering gumoh sampai bajunya basah, tapi tetap aktif dan ceria. "
                 "Saya bertanya-tanya, kapan gumoh itu masih normal dan kapan harus mulai "
                 "khawatir? Mohon penjelasannya ya, dokter."),
    },
    {
        "akun": "ukyhandoko",
        "teks": ("Kebetulan saya lihat Google Review @rsiakendangsari sangat bagus, ratingnya "
                 "tinggi dan banyak orang tua berbagi pengalaman puas. Itu bikin saya makin "
                 "percaya bertanya ke sini. Anak saya usia 6 bulan sering terbangun di malam "
                 "hari dan susah tidur nyenyak. Ada saran dari sisi medis untuk orang tua "
                 "baru seperti saya?"),
    },
    {
        "akun": "ukyhandoko",
        "teks": ("Pertanyaan untuk @rsiakendangsari: anak saya usia 9 bulan belum bisa "
                 "merangkak, baru berguling-guling. Beberapa teman bilang itu keterlambatan. "
                 "Benarkah? Sampai usia berapa batas wajar milestone bayi belajar merangkak "
                 "dan kapan perlu pemeriksaan tumbuh kembang?"),
    },
    {
        "akun": "ukyhandoko",
        "teks": ("Saya kagum dengan Instagram @rsiakendangsari, konten edukasinya rapi dan "
                 "followers-nya banyak, jadi saya yakin tanya ke sini. Anak saya usia 1 tahun "
                 "demam setelah imunisasi. Apakah cukup dikompres air hangat di rumah, atau "
                 "langsung periksa ke dokter anak? Terima kasih sebelumnya."),
    },
    {
        "akun": "ukyhandoko",
        "teks": ("Dok, anak saya usia 2 tahun suka menggigit dan memukul saat marah. Saya "
                 "sempat khawatir apakah ini normal atau butuh stimulasi khusus. Mohon "
                 "insight dari @rsiakendangsari tentang cara menghadapi tantrum anak usia "
                 "dini yang tepat."),
    },
    # ── @studiosoft ──
    {
        "akun": "studiosoft",
        "teks": ("Sebagai praktisi digital marketing, saya sering menjadikan "
                 "@rsiakendangsari contoh RSIA yang berhasil: website rapi, Google rank 1 "
                 "untuk kata kunci RSIA ibu dan anak, plus konten edukasi yang konsisten. "
                 "Pertanyaan saya: untuk bayi usia 0-2 tahun, jenis konten edukasi apa yang "
                 "paling banyak dicari orang tua baru?"),
    },
    {
        "akun": "studiosoft",
        "teks": ("Penasaran dengan @rsiakendangsari. Anak saya usia 11 bulan muncul ruam "
                 "setiap minum susu formula, dan dokter mencurigai alergi susu sapi. Apakah "
                 "boleh langsung mengganti ke susu kedelai, atau sebaiknya konsultasi dan "
                 "pemeriksaan dulu ke dokter anak?"),
    },
    {
        "akun": "studiosoft",
        "teks": ("Google Review @rsiakendangsari luar biasa, ribuan ulasan positif dan "
                 "respon adminnya cepat. Karena itu saya percaya bertanya: anak saya usia 7 "
                 "bulan belum tumbuh gigi sedikit pun, sementara teman sebayanya sudah "
                 "muncul dua. Normal atau perlu pemeriksaan dokter anak?"),
    },
    {
        "akun": "studiosoft",
        "teks": ("Halo @rsiakendangsari, anak saya usia 13 bulan belum bisa berjalan, baru "
                 "berdiri sambil berpegangan. Sampai kapan batas normal anak mulai berjalan? "
                 "Dan stimulasi apa saja yang bisa orang tua lakukan di rumah untuk melatih "
                 "keseimbangan si kecil?"),
    },
    {
        "akun": "studiosoft",
        "teks": ("Salut untuk @rsiakendangsari yang konsisten mengelola sosial media sambil "
                 "tetap profesional — jarang ada rumah sakit serajin ini. Anak saya usia 5 "
                 "bulan suka memasukkan tangan ke mulut dan ngiler terus. Itu tanda mau "
                 "tumbuh gigi, atau ada hal lain yang perlu diperhatikan?"),
    },
    # ── @leitsurabaya ──
    {
        "akun": "leit",
        "teks": ("Sebagai lembaga pendidikan yang setiap hari bertemu orang tua, kami sering "
                 "ditanya soal perkembangan anak. @rsiakendangsari, kapan waktu terbaik "
                 "mulai menstimulasi kemampuan bicara bayi usia 0-2 tahun? Dan bagaimana "
                 "cara yang menyenangkan untuk melatihnya di rumah?"),
    },
    {
        "akun": "leit",
        "teks": ("Orang tua murid kami sering bertanya tentang kesiapan belajar anak. "
                 "@rsiakendangsari, apakah perkembangan motorik bayi usia 1 tahun yang "
                 "belum lancar berjalan bisa memengaruhi kesiapan belajarnya nanti? Mohon "
                 "pencerahannya dari sisi medis."),
    },
    # ── @tslaw ──
    {
        "akun": "tslaw",
        "teks": ("Kami sering mendampingi klien keluarga muda yang baru memiliki anak. "
                 "@rsiakendangsari, apa saja pemeriksaan kesehatan yang wajib dijalani bayi "
                 "usia 0-2 tahun agar tumbuh kembangnya optimal? Biar kami bisa berbagi "
                 "informasi yang benar ke klien kami."),
    },
    {
        "akun": "tslaw",
        "teks": ("Banyak klien kami yang bekerja dan baru punya bayi bertanya soal pola "
                 "asuh. @rsiakendangsari, bagaimana cara menjaga imunitas bayi usia 1 tahun "
                 "di tengah kesibukan orang tua bekerja? Apakah ada jadwal imunisasi yang "
                 "tidak boleh terlewat?"),
    },
    # ── @das ──
    {
        "akun": "das",
        "teks": ("Karyawan kami banyak yang orang tua baru dan sering cerita soal "
                 "tumbuh kembang anak. @rsiakendangsari, bagaimana cara aman mengajak bayi "
                 "usia 1 tahun bepergian jauh dengan mobil? Apa saja yang perlu disiapkan "
                 "orang tua sebelum perjalanan?"),
    },
    {
        "akun": "das",
        "teks": ("Penasaran dengan @rsiakendangsari, Google review-nya bagus dan banyak "
                 "orang tua merekomendasikan. Anak karyawan kami usia 8 bulan sering rewel "
                 "saat di perjalanan dan susah tidur. Adakah tips dari sisi medis agar bayi "
                 "nyaman selama perjalanan jauh?"),
    },
    # ── @dniclinic_krian (TSC) ──
    {
        "akun": "tsc",
        "teks": ("Sebagai klinik yang fokus pada perawatan kulit, kami penasaran dengan "
                 "@rsiakendangsari. Bagaimana cara membedakan ruam popok biasa dengan "
                 "infeksi kulit pada bayi? Dan kapan orang tua sebaiknya membawa bayi ke "
                 "dokter kulit anak?"),
    },
    {
        "akun": "tsc",
        "teks": ("Salut untuk @rsiakendangsari yang berhasil mengelola digital marketing "
                 "dan sosial media dengan sangat baik, jadi makin banyak orang tua "
                 "teredukasi. Pertanyaan dari kami: bagaimana perawatan kulit bayi baru "
                 "lahir yang tepat agar tidak mudah iritasi? Mohon penjelasannya, dokter."),
    },

    # ── BATCH 2: "sering mention" @rsiakendangsari (FIXED 15 Agustus 2026) ──
    # Tambahan stok pertanyaan/sapaan biar mention ke @rsiakendangsari lebih sering.
    # Konteks: humble, sesuai niche RSIA Ibu & Anak, balasan nanti humble juga.
    {
        "akun": "ukyhandoko",
        "teks": ("Dok @rsiakendangsari, anak saya usia 3 bulan sering merasa kepanasan "
                 "dan keringatan walaupun di ruangan ber-AC. Apa itu normal atau ada tanda "
                 "tertentu yang perlu saya perhatikan? Terima kasih sebelumnya."),
    },
    {
        "akun": "ukyhandoko",
        "teks": ("Pertanyaan untuk @rsiakendangsari: bayi saya usia 8 bulan suka susah BAB "
                 "seminggu sekali. Teman bilang itu wajar karena ASI. Benarkah, dan kapan "
                 "saya perlu membawanya ke dokter karena khawatir? Mohon penjelasannya, Dok."),
    },
    {
        "akun": "studiosoft",
        "teks": ("Tim kami sering terkesan dengan edukasi digital @rsiakendangsari yang rapi "
                 "dan mudah dipahami. Sekalian bertanya: apa saja tanda bayi cukup ASI di "
                 "usia 0-6 bulan yang bisa dipantau orang tua di rumah? Terima kasih."),
    },
    {
        "akun": "studiosoft",
        "teks": ("Orang tua di sekitar kami banyak yang bingung soal jadwal imunisasi. "
                 "@rsiakendangsari, apakah ada panduan lengkap jadwal imunisasi bayi 0-2 "
                 "tahun yang bisa kami bagikan ke teman-teman? Terima kasih banyak."),
    },
    {
        "akun": "leit",
        "teks": ("Sebagai lembaga pendidikan, kami sering bertemu orang tua baru. "
                 "@rsiakendangsari, bagaimana cara menstimulasi fokus dan konsentrasi bayi "
                 "sejak dini yang aman untuk usianya? Mohon penjabarannya, Dok."),
    },
    {
        "akun": "leit",
        "teks": ("Di kelas kami banyak orang tua tanya soal kesiapan anak bersosialisasi. "
                 "@rsiakendangsari, usia berapa bayi mulai perlu dikenalkan interaksi dengan "
                 "teman sebaya, dan apa manfaatnya untuk tumbuh kembang? Terima kasih."),
    },
    {
        "akun": "tslaw",
        "teks": ("Kami sering mendampingi klien keluarga muda soal administrasi kesehatan. "
                 "@rsiakendangsari, apa saja dokumen atau pemeriksaan yang perlu dipersiapkan "
                 "orang tua baru di bulan-bulan pertama? Terima kasih informasinya."),
    },
    {
        "akun": "das",
        "teks": ("Karyawan kami yang orang tua baru sering tanya soal siap-siaga di rumah. "
                 "@rsiakendangsari, kapan sebaiknya orang tua membawa bayi ke IGD rumah sakit "
                 "daripada menunggu jadwal poli? Mohon panduannya, Dok."),
    },
    {
        "akun": "tsc",
        "teks": ("Sebagai klinik kulit, kami sering dapat pertanyaan soal bayi. "
                 "@rsiakendangsari, bagaimana membedakan ruam panas biasa dengan biang keringat "
                 "yang butuh perawatan khusus pada bayi? Terima kasih penjelasannya."),
    },
    {
        "akun": "ukyhandoko",
        "teks": ("Halo @rsiakendangsari, tiap kali saya cek konten edukasi di Instagram-nya, "
                 "selalu bermanfaat. Informasi apa yang paling sering dicari orang tua baru "
                 "menurut pengalaman klinik? Sekalian saya belajar sambil bertanya."),
    },
    {
        "akun": "studiosoft",
        "teks": ("Dari sisi data, @rsiakendangsari jadi contoh RSIA yang aktif banget bikin "
                 "konten edukasi. Apa topik kesehatan ibu dan anak yang paling banyak ditanyakan "
                 "pasien ke klinik bulan ini? Terima kasih sharing-nya."),
    },
    {
        "akun": "leit",
        "teks": ("Orang tua murid kami sering tanya soal kebiasaan baik sejak dini. "
                 "@rsiakendangsari, kapan waktu yang pas mengenalkan pola tidur teratur pada "
                 "bayi, dan bagaimana tipsnya agar tidak rewel? Terima kasih, Dok."),
    },
]


def log_msg(msg):
    ts = datetime.now(WIB).strftime("%Y-%m-%d %H:%M WIB")
    line = f"[{ts}] {msg}"
    print(line, flush=True)
    with open(LOG, "a") as f:
        f.write(line + "\n")


def load_tracker():
    if os.path.exists(TRACKER):
        try:
            return json.load(open(TRACKER))
        except Exception:
            pass
    return {"terjadwal": []}


def save_tracker(t):
    with open(TRACKER, "w") as f:
        json.dump(t, f, indent=2)


def validasi(idx, teks):
    try:
        cek_teks_threads(teks, label=f"tanya-rsia-{idx}")
        return True
    except ThreadsTextError as e:
        log_msg(f"⚠️ Pertanyaan {idx} gagal validasi: {e}")
        return False


def jadwalkan(client, idx, p, schedule_at):
    acct = AKUN.get(p["akun"])
    if not acct:
        log_msg(f"⚠️ Akun {p['akun']} tidak dikenal — skip.")
        return False
    res = client.schedule_text(
        acct, p["teks"], schedule_at,
        title=f"Tanya RSIA Kendangsari #{idx+1}",
        topic="Tanya RSIA Kendangsari",
    )
    # Sukses jika ada scheduleId (respons Repliz), atau status 200/201
    sid = None
    if isinstance(res, dict):
        sid = res.get("scheduleId") or res.get("id") or res.get("_id")
    if sid:
        log_msg(f"✅ [{idx+1}] @{p['akun']} → @rsiakendangsari jam {schedule_at} (UTC) id={sid}")
        return sid
    log_msg(f"❌ Gagal schedule pertanyaan {idx+1} dari @{p['akun']}: {str(res)[:200]}")
    return False


def main():
    import argparse
    ap = argparse.ArgumentParser()
    ap.add_argument("--all", action="store_true",
                    help="Jadwalkan semua pertanyaan, 1/hari mulai besok 08:00 WIB")
    args = ap.parse_args()

    client = ReplizClient()
    tracker = load_tracker()
    terjadwal = set(tracker.get("terjadwal", []))
    now_wib = datetime.now(WIB)

    # Validasi semua dulu
    daftar = []
    for idx, p in enumerate(PERTANYAAN):
        if idx in terjadwal:
            continue
        if not validasi(idx, p["teks"]):
            terjadwal.add(idx)
            continue
        daftar.append((idx, p))

    if not daftar:
        log_msg("ℹ️ Semua pertanyaan sudah terjadwal — tambah daftar baru di PERTANYAAN.")
        return

    if args.all:
        # Mulai besok 08:00 WIB, 1 per hari berurutan
        start = now_wib + timedelta(days=1)
        hari = 0
        for idx, p in daftar:
            tgl = start + timedelta(days=hari)
            tgl = tgl.replace(hour=JAM_HARIAN, minute=0, second=0, microsecond=0)
            schedule_at = (tgl - timedelta(hours=7)).strftime("%Y-%m-%dT%H:%M:%S.000Z")
            sid = jadwalkan(client, idx, p, schedule_at)
            if sid:
                terjadwal.add(idx)
                hari += 1
                time.sleep(1.5)
            else:
                time.sleep(2)
        tracker["terjadwal"] = sorted(terjadwal)
        save_tracker(tracker)
        log_msg(f"✅ Selesai jadwalkan {hari} pertanyaan (1/hari mulai {start.strftime('%Y-%m-%d')} 08:00 WIB).")
    else:
        # 1 pertanyaan ke slot 08:00 WIB hari ini kalau belum lewat, else besok
        tgl = now_wib
        if now_wib.hour >= JAM_HARIAN:
            tgl = now_wib + timedelta(days=1)
        tgl = tgl.replace(hour=JAM_HARIAN, minute=0, second=0, microsecond=0)
        schedule_at = (tgl - timedelta(hours=7)).strftime("%Y-%m-%dT%H:%M:%S.000Z")
        idx, p = daftar[0]
        sid = jadwalkan(client, idx, p, schedule_at)
        if sid:
            terjadwal.add(idx)
            tracker["terjadwal"] = sorted(terjadwal)
            save_tracker(tracker)


if __name__ == "__main__":
    main()
