#!/usr/bin/env python3
"""
StudioSoft Healthcare Carousel — Cron run (1 item, no loop)
Post hc10 "Data Analytics RS" carousel (album) ke Threads + LinkedIn + FB
di slot kosong berikutnya (05:00 WIB), dengan nested replies.
"""
import json, os, sys, base64
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"

# Content (from hc10 Data Analytics RS)
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 = 05:00 WIB
    slot_base = c.next_slot_utc(5)  # 2026-08-01T22:00:00.000Z = 05:00 WIB today
    print(f"Slot: 05:00 WIB → {slot_base}")

    # replies at +1min and +2min (parse and add)
    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}")
        rp2 = 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])
        rp3 = c.create_schedule(ACC.STUDIOSOFT_THREADS,
            "#StudioSoft #DataAnalytics #HealthcareRS #RumahSakit #DigitalMarketing",
            r3, type_="text", replies=[pid])
        print(f"  ✅ Reply2 → {rp2.get('scheduleId')} | Reply3 → {rp3.get('scheduleId')}")
        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}")
        rp2 = 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])
        rp3 = c.create_schedule(ACC.STUDIOSOFT_LINKEDIN,
            "#StudioSoft #DataAnalytics #HealthcareMarketing #RumahSakit #DigitalMarketing",
            r3, type_="text", replies=[pid])
        print(f"  ✅ Reply2 → {rp2.get('scheduleId')} | Reply3 → {rp3.get('scheduleId')}")
        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}")
        rp2 = c.create_schedule(ACC.STUDIOSOFT_FB,
            "Ada pertanyaan seputar data analytics untuk RS & klinik? Tanya di kolom komentar! 👇",
            r2, type_="text", replies=[pid])
        rp3 = c.create_schedule(ACC.STUDIOSOFT_FB,
            "#StudioSoft #DataAnalytics #HealthcareRS #RumahSakit #DigitalMarketing",
            r3, type_="text", replies=[pid])
        print(f"  ✅ Reply2 → {rp2.get('scheduleId')} | Reply3 → {rp3.get('scheduleId')}")
        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]}")

    # Update state
    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)
    return ok

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