#!/usr/bin/env python3
"""studiosoft_hc72_carousel_gen.py — StudioSoft Healthcare Carousel hc72.

Topik : "Jasa Digital Marketing Klinik: Cara Menarik Pasien Baru dari Google"
Artikel: https://studiosoft.id/jasa-digital-marketing-klinik/ (HTTP 200, dicek 26 Okt 2026)
         RE-AIR Threads: jejak Threads terakhir 4 Okt 2026 02:00Z (hc54) = PALING TUA
         di antara artikel HC hidup tanpa jadwal Threads mendatang. Slide BARU
         ss_hc72_jasmarkklinik_*.

Isi dari artikel asli: klinik menjual kepercayaan bukan produk; 4 tahap perjalanan
pasien (sadar masalah - cari solusi - cari terdekat - memutuskan); 5 strategi
(jawab pertanyaan dengan benar, menang di pencarian "terdekat", permudah menghubungi,
kredibilitas terlihat, konten jangka panjang); kesalahan marketing klinik.

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_hc72_carousel")
TAG = "#jasdigitalmarketingklinik"
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 KLINIK"], after=44)
    s.lead("Klinik tidak menjual produk yang bisa dilihat di foto. Yang dijual adalah "
           "kepercayaan: bahwa pasien akan ditangani dengan aman, oleh tenaga "
           "profesional, dan hasilnya sesuai harapan.", after=30)
    s.para("Karena itu strategi pemasarannya bukan soal promosi, tapi soal kemudahan "
           "dan keyakinan.", size=30)
    return s.render("ss_hc72_jasmarkklinik_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("4 TAHAP", SKY), "PASIEN MEMILIH"], after=40)
    s.bullets([
        ("Sadar ada masalah", "keluhan dicari dengan bahasa sehari-hari, bukan istilah medis."),
        ("Mencari solusi", "membaca artikel, membandingkan cara penanganan."),
        ("Mencari yang terdekat", "kueri berubah jadi \u201cklinik X terdekat\u201d."),
        ("Memutuskan", "melihat ulasan, jam buka, dan kemudahan membuat janji."),
    ], gap=20, name_size=34, desc_size=25, after=30)
    s.para("Di tahap ketiga dan keempat, Google menampilkan hasil peta di atas hasil "
           "biasa. Klinik yang tidak muncul di sana kalah, seberapa pun banyak "
           "artikelnya.", size=29)
    return s.render("ss_hc72_jasmarkklinik_02_tahap.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("3 HAL YANG", SKY), "PALING MENENTUKAN"], after=40)
    s.bullets([
        ("Jawab dengan benar", "bahasa yang dipahami pasien, tanpa janji kesembuhan."),
        ("Menang di \u201cterdekat\u201d", "Google Business Profile lengkap, ulasan segar, halaman lokasi jelas."),
        ("Permudah menghubungi", "tombol WhatsApp terlihat, jadwal dokter terbaru, balasan cepat."),
    ], gap=26, name_size=36, desc_size=26, after=34)
    s.para("Bagian ketiga paling sering terlewat, padahal paling murah dikerjakan. "
           "Pasien bisa berubah pikiran dalam hitungan detik kalau harus mencari nomor "
           "telepon atau menunggu balasan berjam-jam.", size=29)
    return s.render("ss_hc72_jasmarkklinik_03_tiga.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("KREDIBILITAS", SKY), "HARUS TERLIHAT"], after=40)
    s.bullets([
        ("Profil dokter", "nama, gelar spesialis, dan pengalaman ditulis jelas."),
        ("Penjelasan prosedur", "apa yang dilakukan, berapa lama, apa yang disiapkan."),
        ("Bukti sosial", "testimoni dengan izin pasien, foto fasilitas, standar kebersihan."),
        ("Kejelasan biaya", "estimasi konsultasi mengurangi keraguan sebelum datang."),
        ("Tinjauan medis", "konten kesehatan diperiksa tenaga medis sebelum tayang."),
    ], gap=18, name_size=34, desc_size=24)
    return s.render("ss_hc72_jasmarkklinik_04_kredibel.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("KESALAHAN", SKY), "YANG MAHAL"], after=36)
    s.bullets([
        ("Menjanjikan hasil instan", "melanggar etika dan merusak kepercayaan."),
        ("Mengabaikan map pack", "padahal mayoritas pencarian klinik bersifat lokal."),
        ("Konten tanpa dokter", "informasi kesehatan kehilangan kredibilitas."),
        ("Membiarkan pertanyaan", "calon pasien memilih klinik yang lebih cepat merespons."),
        ("Tidak mengukur", "tidak ketahuan konten mana yang mendatangkan pasien."),
    ], gap=18, name_size=34, desc_size=24, after=28)
    s.para("Mulai dari pencarian lokal dan konten yang ditinjau dokter. StudioSoft "
           "membantu klinik menyusun keduanya, lalu mengukurnya sampai ke jumlah "
           "pendaftaran.", size=29)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc72_jasmarkklinik_05_cta.png", OUT_DIR)


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