#!/usr/bin/env python3
"""StudioSoft Healthcare Carousel — hc21 Website RS Cepat, Mobile, Tanpa Hambatan (cron run)
Posts the 5-slide carousel (album) to Threads + LinkedIn + FB
at next free slot, with nested replies + discussion hook.
"""
import json, os, sys
from datetime import datetime, timezone, timedelta
from repliz_client import ReplizClient, ACC
from diskusi_engine import tambahkan_diskusi

c = ReplizClient()

CAROUSEL_DIR = os.path.expanduser("~/.openclaw/workspace-atun/studiosoft_hc21_carousel")
SLIDE_FILES = ["01_cover.png", "02_kenapa.png", "03_isi.png", "04_langkah.png", "05_cta.png"]

ARTICLE_URL = "https://studiosoft.id/website-rumah-sakit-gagal-pasien"

THREADS = tambahkan_diskusi(
    ('Website RS bukan pajangan — ia wajah pertama pasien sebelum datang.\n\n'
     'Kalau lambat atau kacau di HP, pasien langsung cari RS lain. Padahal cukup:\n'
     '✅ Buka cepat di bawah 3 detik\n'
     '✅ Rapi dan gampang di HP\n'
     '✅ Info dokter & jadwal mudah ditemukan\n'
     '✅ Pendaftaran online mulus\n\n'
     'Website yang cepat dan mobile-friendly membuat pasien betah, lalu berani datang.\n\n'
     'Pernah merasa website RS/klinik Anda lambat saat dibuka dari HP?'),
    platform='threads', industri='rumah_sakit', tone='netral', force=True)

LINKEDIN = tambahkan_diskusi(
    ('Kebanyakan website RS hanya menjadi pajangan — pasien kesulitan, lalu pergi ke RS lain.\n\n'
     'Padahal mayoritas pasien mencari informasi lewat HP. Jika situs lambat atau berantakan di layar kecil, kepercayaan langsung turun.\n\n'
     'Yang perlu diperhatikan:\n'
     '1. Kecepatan load di bawah 3 detik (optimasi gambar & caching)\n'
     '2. Tampilan responsif yang rapi di semua ukuran layar\n'
     '3. Info dokter, jadwal, dan layanan mudah ditemukan di HP\n'
     '4. Pendaftaran online yang mulus dan terhubung booking\n\n'
     'Bold statement: website RS yang lambat di HP diam-diam mengusir calon pasien setiap hari.\n\n'
     'Audit gratis website RS/klinik Anda: www.studiosoft.id'),
    platform='linkedin', industri='rumah_sakit', tone='opini', force=True)

FB = tambahkan_diskusi(
    ('Website RS dan klinik yang cepat serta mobile-friendly membuat pasien lebih mudah menemukan info dan berani datang.\n\n'
     'Mengapa penting? Karena mayoritas pasien membuka website dari HP. Kalau lambat atau berantakan, mereka langsung pindah ke RS lain.\n\n'
     'Yang wajib diperhatikan:\n'
     '✓ Buka cepat di bawah 3 detik\n'
     '✓ Rapi dan nyaman di layar HP\n'
     '✓ Info dokter dan jadwal mudah ditemukan\n'
     '✓ Pendaftaran online mulus dan terhubung booking\n\n'
     'Website yang nyaman di HP akan menumbuhkan kepercayaan sebelum pasien memutuskan datang.\n\n'
     'Buat tim yang sudah memastikan websitenya cepat dan mobile-friendly, Anda selangkah lebih maju! 👏'),
    platform='facebook', industri='rumah_sakit', tone='sanjungan', force=True)


def upload_slides():
    urls = []
    for f in SLIDE_FILES:
        p = os.path.join(CAROUSEL_DIR, f)
        u = c.upload_to_wp(p, filename=f"ss_hc21_websiters_{f}")
        if not u:
            print(f"GAGAL upload {f}")
            return None
        urls.append(u)
        print(f"OK {f} -> {u.split('/')[-1]}")
    return urls


def main():
    wib = datetime.now(timezone(timedelta(hours=7)))
    print(f"Time WIB: {wib.strftime('%Y-%m-%d %H:%M')}")
    print(f"Threads len: {len(THREADS)} (<=500: {len(THREADS)<=500})")
    if len(THREADS) > 500:
        print("Threads caption > 500 karakter, tolak kirim.")
        return False

    url = upload_slides()
    if not url:
        return False
    medias = [c.make_media(u, "image", f"slide{i+1}") for i, u in enumerate(url)]

    # Next free slot (Slot 1 = 05:00 WIB), replies at :01 and :02 WIB
    slot = c.next_slot_utc(5)
    print(f"Slot: 05:00 WIB -> {slot}")

    base_dt = datetime.fromisoformat(slot.replace("Z", "+00:00"))
    r2 = (base_dt + timedelta(minutes=1)).strftime("%Y-%m-%dT%H:%M:%S.000Z")
    r3 = (base_dt + timedelta(minutes=2)).strftime("%Y-%m-%dT%H:%M:%S.000Z")

    results = {}

    # THREADS
    print("\nTHREADS:")
    try:
        album = c.schedule_album(ACC.STUDIOSOFT_THREADS, THREADS, slot, medias,
                                 title="Website RS Cepat, Mobile-Friendly & Pendaftaran Online")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  OK Album -> {pid}")
        c.create_schedule(ACC.STUDIOSOFT_THREADS,
            f"Baca selengkapnya: {ARTICLE_URL}\n\nKonsultasi audit website RS/klinik:\nwww.studiosoft.id",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_THREADS,
            "#StudioSoft #WebsiteRS #DigitalMarketing #RumahSakit #Klinik",
            r3, type_="text", replies=[pid])
        print("  OK 2 replies")
        results["threads"] = True
    except Exception as e:
        print(f"  GAGAL {e}")
        results["threads"] = False

    # LINKEDIN
    print("\nLINKEDIN:")
    try:
        album = c.schedule_album(ACC.STUDIOSOFT_LINKEDIN, LINKEDIN, slot, medias,
                                 title="Website RS Cepat, Mobile-Friendly & Pendaftaran Online")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  OK Album -> {pid}")
        c.create_schedule(ACC.STUDIOSOFT_LINKEDIN,
            f"Baca artikel lengkapnya: {ARTICLE_URL}\n\nKonsultasi audit website RS:\nwww.studiosoft.id",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_LINKEDIN,
            "#StudioSoft #WebsiteRS #Healthcare #DigitalMarketing",
            r3, type_="text", replies=[pid])
        print("  OK 2 replies")
        results["linkedin"] = True
    except Exception as e:
        print(f"  GAGAL {e}")
        results["linkedin"] = False

    # FB
    print("\nFACEBOOK:")
    try:
        album = c.schedule_album(ACC.STUDIOSOFT_FB, FB, slot, medias,
                                 title="Website RS Cepat, Mobile-Friendly & Pendaftaran Online")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  OK Album -> {pid}")
        c.create_schedule(ACC.STUDIOSOFT_FB,
            "Baca artikel lengkapnya: " + ARTICLE_URL,
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_FB,
            "#StudioSoft #WebsiteRS #DigitalMarketing #RumahSakit",
            r3, type_="text", replies=[pid])
        print("  OK 2 replies")
        results["fb"] = True
    except Exception as e:
        print(f"  GAGAL {e}")
        results["fb"] = False

    print("\n" + "=" * 50)
    ok = all(results.values())
    print("Semua platform dijadwalkan!" if ok else f"Gagal: {[k for k, v in results.items() if not v]}")

    if ok:
        state = {"index": 20, "topic": "Website RS Cepat & Mobile-Friendly",
                 "last_post": wib.strftime("%Y-%m-%d %H:%M")}
        with open(os.path.expanduser("~/.openclaw/workspace-atun/studiosoft_healthcare_state.json"), "w") as f:
            json.dump(state, f)
        print("State updated")
    return ok


if __name__ == "__main__":
    sys.exit(0 if main() else 1)
