#!/usr/bin/env python3
"""studiosoft_hc71_carousel_gen.py — StudioSoft Healthcare Carousel hc71.

Topik : "Jasa Digital Marketing RS: Cara Memilih Agensi Tepat"
Artikel: https://studiosoft.id/jasa-digital-marketing-rs/ (HTTP 200, dicek 20 Okt 2026)
         RE-AIR Threads: jejak Threads terakhir 3 Okt 2026 02:01Z (hc53) = PALING TUA
         di antara artikel HC hidup tanpa jadwal Threads mendatang. Slide BARU
         ss_hc71_pilihagensi_*.

Isi dari artikel asli: apa yang sebenarnya dikerjakan agensi digital marketing RS,
kenapa butuh agensi (bukan freelancer), tanda agensi paham industri kesehatan,
7 pertanyaan wajib sebelum tanda tangan, kesalahan yang paling mahal.

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_hc71_carousel")
TAG = "#jasdigitalmarketingrs"
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([("JASA DIGITAL", SKY), "MARKETING RS"], after=44)
    s.lead("Memilih agensi untuk rumah sakit tidak sama dengan memilih agensi untuk "
           "bisnis biasa. Ada batas etika promosi, ada data pasien, ada istilah medis "
           "yang tidak boleh disederhanakan.", after=30)
    s.para("Agensi yang jago menjual produk konsumen belum tentu cocok menangani "
           "rumah sakit.", size=30)
    return s.render("ss_hc71_pilihagensi_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("YANG SEBENARNYA", SKY), "DIKERJAKAN"], after=40)
    s.bullets([
        ("Riset kata kunci kesehatan", "istilah yang dipakai pasien, bukan bahasa medis."),
        ("Halaman per poliklinik", "tiap layanan punya halaman jelas dan mudah ditemukan."),
        ("Konten edukasi", "informatif, tanpa melanggar batas promosi kesehatan."),
        ("Reputasi dan ulasan", "komentar di berbagai kanal ikut dikelola, bukan dibiarkan."),
        ("Pengukuran", "dihubungkan ke jumlah pendaftaran, bukan hanya tayangan."),
    ], gap=18, name_size=34, desc_size=24, after=28)
    s.para("Tidak ada satu pun bagian di atas yang berbunyi \u201cbikin konten viral\u201d.",
           size=30)
    return s.render("ss_hc71_pilihagensi_02_kerja.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("TANDA PAHAM", SKY), "INDUSTRI"], after=40)
    s.bullets([
        ("Tanya verifikasi medis", "siapa memeriksa isi sebelum tayang, berapa lama prosesnya."),
        ("Tahu batasnya", "tidak menjanjikan kesembuhan, tidak pakai foto pasien tanpa izin."),
        ("Paham kerahasiaan", "jelas bagaimana data pasien disimpan dan siapa yang mengakses."),
        ("Ukuran masuk akal", "pendaftaran dari kanal digital, panggilan masuk, kunjungan halaman."),
        ("Punya rujukan", "berani menyebut klien sektor kesehatan yang bisa dihubungi."),
    ], gap=18, name_size=34, desc_size=24)
    return s.render("ss_hc71_pilihagensi_03_tanda.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("7 PERTANYAAN", SKY), "SEBELUM TTD"], after=40)
    s.bullets([
        ("Siapa menulis, siapa verifikasi", "dua peran berbeda, jangan digabung diam-diam."),
        ("Alur persetujuan", "siapa di RS yang berwenang meloloskan konten."),
        ("Komentar negatif", "bagaimana ditangani dan dalam berapa lama."),
        ("Akses data", "data apa yang diambil dan di mana disimpan."),
        ("Isi laporan bulanan", "angka apa saja, dan siapa yang membacanya."),
        ("Kalau kerja sama berhenti", "domain, akun iklan, dan analitik tetap milik RS."),
    ], gap=18, name_size=34, desc_size=24)
    return s.render("ss_hc71_pilihagensi_04_pertanyaan.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("KESALAHAN", SKY), "PALING MAHAL"], after=36)
    s.bullets([
        ("Pilih yang termurah", "lalu berhenti di tengah karena hasilnya tidak terasa."),
        ("Serahkan akun tanpa catatan", "akses sulit ditarik kembali saat ingin pindah."),
        ("Tanpa penanggung jawab", "konten menumpuk menunggu keputusan yang tidak ada."),
        ("Menilai dari pengikut", "bukan dari jumlah pasien yang akhirnya datang."),
    ], gap=18, name_size=34, desc_size=24, after=30)
    s.para("Mulai dari daftar pertanyaan, bukan dari harga. StudioSoft membantu rumah "
           "sakit dan klinik menyusun strategi, konten edukasi, dan pengukuran yang "
           "bisa ditindaklanjuti.", size=30)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc71_pilihagensi_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc71 \u2014 jasa 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)
