#!/usr/bin/env python3
"""StudioSoft Healthcare hc01 — Crisrun ONE item.
Post "RS Wajib Digital Marketing" carousel (album) to Threads + LinkedIn + FB
at next free slot (05: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_hc01_carousel")
SLIDE_FILES = ["01_cover.png", "02_perilaku.png", "03_pilar.png", "04_kenapa.png", "05_cta.png"]

ARTICLE_URL = "https://studiosoft.id/rs-klinik-digital-marketing-2026"

THREADS = ("Dulu pasien cari RS lewat tetangga atau brosur. Sekarang? Google, Instagram, Google Maps.\n\n"
           "Kenyataannya, masih banyak RS & klinik yang belum punya strategi digital yang jelas. Mereka kalah saing sama RS lain yang udah lebih dulu hadir online.\n\n"
           "Padahal pasien sekarang lebih milih RS yang:\n"
           "✅ Muncul di Google Maps\n"
           "✅ Aktif edukasi di Instagram\n"
           "✅ Website informatif & mobile-friendly\n\n"
           "Kuncinya bukan soal budget besar — tapi strategi yang tepat.")

LINKEDIN = ("Digital marketing untuk rumah sakit bukan lagi pilihan — ini keharusan.\n\n"
            "Data menunjukkan 77% pasien mencari informasi RS secara online sebelum booking. Google Maps jadi platform nomor satu untuk mencari lokasi klinik.\n\n"
            "RS yang tidak punya strategi digital akan kehilangan pasien ke kompetitor yang lebih dulu hadir online.\n\n"
            "Mulai dari hal dasar:\n"
            "1. Optimasi Google Business Profile\n"
            "2. Website mobile-friendly dengan info dokter\n"
            "3. Konten edukasi dokter di Instagram & Facebook\n"
            "4. SEO lokal untuk kata kunci spesifik\n\n"
            "StudioSoft siap membantu RS & klinik menyusun strategi digital marketing berbasis data.")

FB = ("Dulu pasien cari RS lewat brosur dan rekomendasi tetangga. Sekarang? Mereka buka Google, cek rating di Google Maps, lihat Instagram RS, baru booking.\n\n"
      "Perubahan perilaku ini bikin digital marketing bukan sekadar pilihan — ini keharusan buat RS dan klinik yang mau bertahan.\n\n"
      "Yang menarik: RS dengan strategi digital yang baik justru bisa menghemat biaya marketing karena pasien datang secara organik dari pencarian Google dan konten edukasi yang tersebar.\n\n"
      "Baca selengkapnya di studiosoft.id — kami bahas tuntas strategi digital marketing untuk RS & klinik.")


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_hc01_{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 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="RS Wajib Digital Marketing")
        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 digital marketing RS & klinik:\nwww.studiosoft.id",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_THREADS,
            "#StudioSoft #DigitalMarketing #RumahSakit #Klinik #Healthcare",
            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="RS Wajib Digital Marketing")
        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 digital marketing untuk RS & klinik:\nwww.studiosoft.id",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_LINKEDIN,
            "#StudioSoft #HealthcareMarketing #DigitalMarketing #RumahSakit #Klinik",
            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="RS Wajib Digital Marketing")
        pid = album.get("scheduleId") or album.get("_id")
        print(f"  ✅ Album → {pid}")
        c.create_schedule(ACC.STUDIOSOFT_FB,
            "Ada pertanyaan seputar digital marketing untuk RS & klinik? Tanya di kolom komentar! 👇",
            r2, type_="text", replies=[pid])
        c.create_schedule(ACC.STUDIOSOFT_FB,
            "#StudioSoft #DigitalMarketing #RumahSakit #Klinik #Healthcare",
            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": 0, "topic": "RS Wajib Digital Marketing", "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)
