#!/usr/bin/env python3
"""StudioSoft Healthcare Carousel — cron run ONE item.
Posts Data Analytics RS carousel (album) to Threads + LinkedIn + FB
at next free slot = 14:00 WIB, with nested replies.
"""
import json, os, sys
from datetime import datetime, timezone, timedelta
from repliz_client import ReplizClient, ACC

c = ReplizClient()

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

ARTICLE_URL = "https://studiosoft.id/data-analytics-rumah-sakit-kebutuhan-pasien"

THREADS = ("RS & klinik punya banyak data — dari pendaftaran, website, sosmed, sampai feedback pasien. "
           "Tapi jarang dianalisis.\n\nPadahal di data itu ada jawaban:\n"
           "🔍 Layanan apa yang paling dicari?\n🕐 Jam berapa booking tertinggi?\n"
           "👥 Siapa demografi pasien Anda?\n💬 Apa yang paling dikeluhkan?\n\n"
           "Data bicara — Anda tinggal mendengar.")

LINKEDIN = ("Rumah sakit dan klinik menghasilkan data setiap hari — namun sebagian besar tidak pernah dianalisis.\n\n"
            "Data analytics bisa menjawab pertanyaan paling penting bagi RS:\n"
            "• Layanan apa yang paling dicari pasien?\n"
            "• Dari mana asal pasien?\n"
            "• Jam berapa booking tertinggi?\n"
            "• Konten apa yang paling engaging?\n"
            "• Berapa biaya per pasien baru dari iklan?\n\n"
            "Contoh nyata: RS di Surabaya melihat 60% traffic website dari pencarian \"biaya operasi katarak\". "
            "Setelah membuat halaman khusus, booking naik 35% dalam 2 bulan.\n\n"
            "Data-driven decision making adalah masa depan marketing RS.")

FB = ("RS dan klinik itu sebenarnya duduk di atas gunung data. Setiap hari ada data pendaftaran, kunjungan website, "
      "interaksi sosmed, feedback pasien. Tapi kebanyakan gak pernah digali.\n\n"
      "Padahal dari data itu Anda bisa tahu:\n"
      "✅ Layanan apa yang paling banyak dicari\n"
      "✅ Jam berapa pasien paling sering booking\n"
      "✅ Dari mana asal pasien\n"
      "✅ Konten apa yang paling diminati\n"
      "✅ Apa keluhan paling umum\n\n"
      "Ini yang disebut data-driven marketing — dan ini keahlian utama StudioSoft. Partner pertumbuhan bisnis berbasis data.")

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_data_{f}")
        if not u:
            print(f"❌ Upload gagal {f}")
            return None
        urls.append(u)
        print(f"✅ {f} → {u.split('/')[-1]}")
    return urls

def main():
    print(f"Time WIB: {datetime.now(timezone(timedelta(hours=7))).strftime('%Y-%m-%d %H:%M')}")
    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 = 14:00 WIB (Slot 4), replies at :01 and :02 WIB
    slot_base = c.next_slot_utc(14)  # 2026-08-04T07:00:00.000Z = 14:00 WIB
    print(f"Slot: 14: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="Data Analytics untuk RS & Klinik")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  ✅ Album → {pid}")
        c.create_schedule(ACC.STUDIOSOFT_THREADS,
            f"Baca selengkapnya: {ARTICLE_URL}\n\nKonsultasi strategi data-driven RS & klinik:\nwww.studiosoft.id",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_THREADS,
            "#StudioSoft #DataAnalytics #HealthcareRS #RumahSakit #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="Data Analytics untuk RS & Klinik")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  ✅ Album → {pid}")
        c.create_schedule(ACC.STUDIOSOFT_LINKEDIN,
            f"Baca artikel lengkapnya di: {ARTICLE_URL}\n\nKonsultasi strategi data analytics untuk RS & klinik:\nwww.studiosoft.id",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_LINKEDIN,
            "#StudioSoft #DataAnalytics #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:
        fb_cap = FB + f"\n\n📖 Baca selengkapnya: {ARTICLE_URL}"
        album = c.schedule_album(ACC.STUDIOSOFT_FB, fb_cap, slot_base, medias,
                                 title="Data Analytics untuk RS & Klinik")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  ✅ Album → {pid}")
        c.create_schedule(ACC.STUDIOSOFT_FB,
            "Ada pertanyaan seputar data analytics untuk RS & klinik? Tanya di kolom komentar! 👇",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_FB,
            "#StudioSoft #DataAnalytics #HealthcareRS #RumahSakit #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": 9, "topic": "Data Analytics RS", "last_post": datetime.now(timezone(timedelta(hours=7))).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)
