#!/usr/bin/env python3
"""studiosoft_hc67_carousel_gen.py — StudioSoft Healthcare Carousel hc67.

Topik : "Pentingnya Konten Edukasi Kesehatan untuk Meningkatkan Kepercayaan Pasien"
Artikel: https://studiosoft.id/konten-edukasi-kesehatan-kepercayaan-pasien/
         (WP id 9501, terbit ulang 14 Okt 2026 12:18 WIB / 05:18Z, HTTP 200 diverifikasi
          15 Okt 2026). RE-AIR Threads: jejak Threads terakhir 16 Sep 2026 02:01Z (hc31-ish)
         = PALING TUA di antara artikel HC hidup tanpa jadwal Threads mendatang.
         Slide BARU ss_hc67_edukasi_*.

Isi diambil dari artikel asli: konten edukasi bekerja di masa ragu pasien, kepercayaan
terbentuk sebelum datang, empat ciri edukasi yang dipercaya, edukasi & promosi jangan
dicampur, tiga jenis konten paling cepat membangun kepercayaan, ukuran sederhana.

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). 5 slide: cover + 3 isi + CTA.
"""
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"
OUT_DIR = os.path.join(WS, "studiosoft_hc67_carousel")
TAG = "#edukasikesehatan"
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([("PASIEN PERCAYA", SKY), "SEBELUM DATANG"], after=44)
    s.lead("Konten edukasi bukan meminta pasien datang, tetapi menjelaskan sampai dia "
           "merasa cukup paham untuk memutuskan.", after=30)
    s.para("Keputusan pasien jarang terjadi mendadak. Ada masa ragu yang diisi dengan "
           "membaca, membandingkan, dan bertanya.", size=30)
    return s.render("ss_hc67_edukasi_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("EMPAT CIRI", SKY), "EDUKASI DIPERCAYA"], after=40)
    s.bullets([
        ("Ada penanggung jawab", "isinya diperiksa tenaga medis, dan sumbernya tidak "
                                 "disembunyikan."),
        ("Tidak menjanjikan hasil", "tanpa kalimat kesembuhan pasti atau hasil yang "
                                    "dijamin."),
        ("Menjelaskan batasnya", "kapan keluhan cukup ditangani mandiri, kapan harus "
                                 "diperiksa."),
        ("Konsisten", "terbit teratur, dan jawabannya tidak berubah-ubah antar halaman."),
    ], gap=18, name_size=34, desc_size=24)
    return s.render("ss_hc67_edukasi_02_ciri.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("JANGAN CAMPUR", SKY), "EDUKASI & PROMOSI"], after=40)
    s.lead("Kesalahan yang paling sering terjadi: menyisipkan ajakan berobat di setiap "
           "paragraf.", after=28)
    s.para("Pembaca mengenali polanya, lalu berhenti mempercayai isinya.", size=30, after=24)
    s.para("Ukuran sederhana: kalau ajakan di akhir halaman dihapus, apakah isinya tetap "
           "berguna? Kalau tidak, halaman itu promosi yang dibungkus edukasi.", size=30)
    return s.render("ss_hc67_edukasi_03_pisah.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("TIGA KONTEN", SKY), "PALING DIPERCAYA"], after=40)
    s.bullets([
        ("Penjelasan prosedur", "apa yang akan dijalani pasien, apa yang dirasakan, dan "
                                "berapa lama."),
        ("Tanya jawab", "pertanyaan nyata yang masuk ke kanal rumah sakit, dijawab tenaga "
                        "medis, bisa dibaca orang lain."),
        ("Pengingat pemeriksaan", "informasi yang berguna bahkan ketika pembaca belum "
                                  "sedang berobat."),
    ], gap=20, name_size=35, desc_size=25)
    return s.render("ss_hc67_edukasi_04_jenis.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("HADIR SAAT", SKY), "PASIEN MENCARI"], after=40)
    s.lead("Kepercayaan tidak dibeli lewat iklan, tetapi dibangun lewat penjelasan yang "
           "konsisten dan bisa diverifikasi.", after=28)
    s.para("StudioSoft menyusun strategi konten edukasi untuk rumah sakit dan klinik, dari "
           "perencanaan sampai pengukuran.", size=30)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc67_edukasi_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc67 \u2014 edukasi kesehatan & kepercayaan pasien")
    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)
