#!/usr/bin/env python3
"""studiosoft_hc48_carousel_gen.py — StudioSoft Healthcare Carousel hc48 (RE-AIR Threads).

Topik : "10 Channel Digital Marketing Rumah Sakit yang Wajib Dikelola di Era Online"
Artikel: https://studiosoft.id/10-channel-digital-marketing-rumah-sakit-yang-wajib-dikelola-di-era-online/
         (alive / HTTP 200, diverifikasi 27 Sep 2026)

Konteks run 27 Sep 2026 (02:00 WIB / 26 Sep 19:00 UTC):
- Stok artikel healthcare BARU masih HABIS (WP REST 26 Sep: artikel terbaru non-healthcare).
- AUDIT (hc47_audit.py, 27 Sep): 7 artikel HC seri ini masih DEAD/404.
- Threads: artikel ini terakhir tayang di Threads SS 13 Sep 2026 04:01Z (hanya text) dan
  BELUM PERNAH jadi topik carousel seri ini = kandidat re-air PALING TUA di antara artikel
  HC yang masih hidup (setelah 7-strategi yang sudah dipakai hc47 27 Sep).
  -> slide BARU `ss_hc48_channel10_*`.

Standar desain Bos 16 Sep 2026: engine ss_carousel_lib.py -> rata kiri, satu blok di
tengah vertikal, TANPA separator, bullet dot, bg BIRU TUA #122B63, judul Poppins-Bold 85 /
body 36 / sub 30, auto-fit. Resolusi 1080x1350 (4:5).
"""
import os
import sys

from PIL import Image

sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import ss_carousel_lib as L

WS = "/home/mantapman/.hermes/profiles/atun/workspace"   # JANGAN pakai expanduser("~")
OUT_DIR = os.path.join(WS, "studiosoft_hc48_carousel")
TAG = "#digitalmarketingrumahsakit"
BG = (18, 43, 99)      # #122B63
SKY = L.SKY


def mk(num, total=5):
    return L.Slide(num, total, TAG, bg=BG)


def s1():
    s = mk(1)
    s.title([("10 CHANNEL", SKY), "DIGITAL MARKETING", "RUMAH SAKIT"], after=44)
    s.lead("Pasien tidak lagi memilih rumah sakit dari brosur atau rekomendasi tetangga. "
           "Mereka mencari di Google, membaca ulasan, membuka media sosial, baru memutuskan.",
           after=34)
    s.para("Sepuluh channel yang wajib dikelola agar rumah sakit tetap relevan dan "
           "dipercaya \u2014 bukan sekadar ramai di satu platform.", size=30)
    return s.render("ss_hc48_channel10_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("CHANNEL 1-3:", SKY), "RUMAH DIGITAL", "PASIEN"], after=44)
    s.bullets([
        ("Website resmi", "profil, layanan, jadwal dokter, dan tarif jelas \u2014 pasien "
                          "tak perlu menelepon berkali-kali."),
        ("Google Search (SEO)", "optimasi halaman layanan dan artikel agar muncul untuk "
                                "kata kunci seperti dokter jantung terbaik di kota Anda."),
        ("Google Maps & GBP", "alamat, jam buka, foto fasilitas, dan balasan ulasan \u2014 "
                              "penentu saat orang mencari rumah sakit terdekat."),
    ], gap=26, name_size=38, desc_size=28)
    return s.render("ss_hc48_channel10_02_awal.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("CHANNEL 4-6:", SKY), "MEDSOS, VIDEO", "& EMAIL"], after=44)
    s.bullets([
        ("Instagram & Facebook", "edukasi kesehatan, pengumuman jadwal, cerita pasien "
                                 "dengan izin \u2014 jadi jembatan emosional."),
        ("YouTube & video pendek", "penjelasan dokter dengan bahasa sederhana; satu "
                                   "produksi isi beberapa channel sekaligus."),
        ("Email & newsletter", "pengingat kontrol, vaksinasi, dan promo pemeriksaan "
                               "untuk menjaga loyalitas pasien lama."),
    ], gap=26, name_size=38, desc_size=28)
    return s.render("ss_hc48_channel10_03_medsos.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("CHANNEL 7-10:", SKY), "PESAN, IKLAN,", "BLOG"], after=44)
    s.bullets([
        ("WhatsApp Business", "jawab pertanyaan calon pasien cepat dan konsisten lewat "
                              "nomor resmi rumah sakit."),
        ("Iklan berbayar", "Google Ads dan social ads saat orang mencari layanan "
                           "spesifik \u2014 pesan tetap etis, tanpa menakut-nakuti."),
        ("Portal kesehatan & blog", "direktori online plus artikel edukasi sebagai "
                                    "sumber yang dipercaya dan mesin SEO jangka panjang."),
    ], gap=26, name_size=38, desc_size=28)
    return s.render("ss_hc48_channel10_04_iklan.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("MULAI DARI", SKY), "SATU, JANGAN", "SEPULUH SEKALIGUS"], after=44)
    s.lead("Rapikan dulu website dan Google Business Profile, lalu tumbuhkan konten edukasi "
           "dan channel lain setahap demi setahap.", after=34)
    s.para("Channel digital bukan soal banyak-banyakan platform, tapi konsistensi "
           "mengelolanya.", size=30, after=18)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc48_channel10_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc48 \u2014 10 channel digital marketing RS")
    print("=" * 70)
    for fn in (s1, s2, s3, s4, s5):
        p = fn()
        print("OK %s %s %d bytes" % (p, Image.open(p).size, os.path.getsize(p)))
    print("OK 5 slide -> %s" % OUT_DIR)
