#!/usr/bin/env python3
"""StudioSoft Healthcare Carousel — hc03 Konten Edukasi RS & Klinik (cron run)
Posts the 5-slide carousel (album) to Threads + LinkedIn + FB
at next free slot (05:00 WIB), 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_hc03_carousel")
SLIDE_FILES = ["01_cover.png", "02_mengapa.png", "03_tips.png", "04_hasil.png", "05_cta.png"]

THREADS = tambahkan_diskusi(
    ('RS & klinik yang berbagi ilmu, justru lebih dipercaya pasien.\n\n'
     'Konten edukasi bukan sekadar update-an — ini cara membangun kepercayaan:\n'
     '🩺 Tips menjaga kesehatan keluarga\n'
     '🔎 Mitos vs fakta kesehatan\n'
     '⭐ Testimoni pasien yang sembuh\n'
     '📱 Konten singkat di IG & TikTok\n\n'
     'Konsisten berbagi edukasi = pasien makin yakin memilih kita.'),
    platform='threads', industri='rumah_sakit', tone='netral')

LINKEDIN = tambahkan_diskusi(
    ('Rumah sakit dan klinik yang rutin berbagi edukasi, justru semakin dipercaya pasien.\n\n'
     'Di era informasi, pasien tidak lagi asal pilih faskes. Mereka riset dulu — membaca artikel, menonton konten, dan mencari jawaban atas keluhan yang mereka rasakan. RS yang hadir dengan konten edukasi berkualitas akan dipandang lebih kredibel.\n\n'
     'Ide konten edukasi yang bisa dikerjakan:\n'
     '• Tips menjaga kesehatan keluarga\n'
     '• Mitos vs fakta seputar kesehatan\n'
     '• Testimoni pasien yang berhasil sembuh\n'
     '• Artikel dokter tentang penyakit umum\n'
     '• Konten singkat di Instagram & TikTok\n\n'
     'Hasilnya: kepercayaan naik, pasien baru datang dari Google, dan hubungan dengan pasien makin erat.\n\n'
     'Mau dibantu strategi konten edukasi untuk RS & klinik Anda? www.studiosoft.id'),
    platform='linkedin', industri='rumah_sakit', tone='netral')

FB = tambahkan_diskusi(
    ('RS dan klinik yang rutin berbagi ilmu, justru makin dipercaya pasien.\n\n'
     'Pasien sekarang riset dulu sebelum pilih faskes — baca artikel, tonton konten, cari jawaban atas keluhannya. Yang hadir dengan edukasi berkualitas, akan dianggap lebih kredibel.\n\n'
     'Ide konten edukasi yang bisa dikerjakan:\n'
     '✓ Tips menjaga kesehatan keluarga\n'
     '✓ Mitos vs fakta kesehatan\n'
     '✓ Testimoni pasien yang sembuh\n'
     '✓ Artikel dokter tentang penyakit umum\n'
     '✓ Konten singkat di IG & TikTok\n\n'
     'Hasilnya: kepercayaan naik, pasien baru datang, hubungan makin erat.\n\n'
     'Mau dibantu strategi konten edukasi RS & klinik? www.studiosoft.id'),
    platform='facebook', industri='rumah_sakit', tone='netral')

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_hc_edukasi_{f}")
        if not u:
            print(f"❌ Upload gagal {f}")
            return None
        urls.append(u)
        print(f"✅ {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})")

    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 = 05:00 WIB (Slot 1), replies at :01 and :02 WIB
    slot_base = c.next_slot_utc(5)
    print(f"Slot: 05:00 WIB → {slot_base}")

    base_dt = datetime.fromisoformat(slot_base.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("\n📱 THREADS:")
    try:
        album = c.schedule_album(ACC.STUDIOSOFT_THREADS, THREADS, slot_base, medias,
                                 title="Konten Edukasi untuk RS & Klinik")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  ✅ Album → {pid}")
        c.create_schedule(ACC.STUDIOSOFT_THREADS,
            "Butuh bantuan strategi konten edukasi RS & klinik?\nwww.studiosoft.id",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_THREADS,
            "#StudioSoft #KontenEdukasi #RumahSakit #Klinik #DigitalMarketing",
            r3, type_="text", replies=[pid])
        print("  ✅ 2 replies")
        results["threads"] = True
    except Exception as e:
        print(f"  ❌ {e}")
        results["threads"] = False

    # LINKEDIN
    print("\n💼 LINKEDIN:")
    try:
        album = c.schedule_album(ACC.STUDIOSOFT_LINKEDIN, LINKEDIN, slot_base, medias,
                                 title="Konten Edukasi untuk RS & Klinik")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  ✅ Album → {pid}")
        c.create_schedule(ACC.STUDIOSOFT_LINKEDIN,
            "Tertarik membangun konten edukasi untuk RS & klinik Anda?\nwww.studiosoft.id",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_LINKEDIN,
            "#StudioSoft #KontenEdukasi #HealthcareMarketing #RumahSakit #DigitalMarketing",
            r3, type_="text", replies=[pid])
        print("  ✅ 2 replies")
        results["linkedin"] = True
    except Exception as e:
        print(f"  ❌ {e}")
        results["linkedin"] = False

    # FB
    print("\n🔵 FACEBOOK:")
    try:
        album = c.schedule_album(ACC.STUDIOSOFT_FB, FB, slot_base, medias,
                                 title="Konten Edukasi untuk RS & Klinik")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  ✅ Album → {pid}")
        c.create_schedule(ACC.STUDIOSOFT_FB,
            "Ada pertanyaan seputar konten edukasi RS & klinik? Tanya di kolom komentar! 👇",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_FB,
            "#StudioSoft #KontenEdukasi #RumahSakit #Klinik #DigitalMarketing",
            r3, type_="text", replies=[pid])
        print("  ✅ 2 replies")
        results["fb"] = True
    except Exception as e:
        print(f"  ❌ {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": 3, "topic": "Konten Edukasi RS & Klinik",
                 "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)
