#!/usr/bin/env python3
"""studiosoft_hc68_carousel_gen.py — StudioSoft Healthcare Carousel hc68.

Topik : "Kenapa Website Rumah Sakit Sering Gagal Menghasilkan Pasien Baru?"
Artikel: https://studiosoft.id/website-rumah-sakit-gagal-pasien/
         (WP id 9504, terbit ulang 14 Okt 2026 12:18 WIB, HTTP 200 diverifikasi
          17 Okt 2026). RE-AIR Threads: jejak Threads terakhir 17 Sep 2026 02:01Z
         = PALING TUA di antara artikel HC hidup tanpa jadwal Threads mendatang.
         Slide BARU ss_hc68_websigagal_*.

Isi diambil dari artikel asli: kegagalan jarang karena desain, tiga keluhan yang
hampir selalu sama, empat sebab paling sering, pemeriksaan mandiri 10 menit, dan
urutan perbaikan yang disarankan.

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_hc68_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([("SITUS RAPI,", SKY), "PASIEN TETAP SEDIKIT"], after=44)
    s.lead("Banyak rumah sakit punya situs yang tampak lengkap. Namun pasien baru "
           "yang datang dari situs itu tidak sebanding dengan pekerjaan yang "
           "dikeluarkan.", after=30)
    s.para("Kegagalannya jarang karena desain. Penyebabnya biasanya jauh lebih "
           "mendasar.", size=30)
    return s.render("ss_hc68_websigagal_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("TIGA KELUHAN", SKY), "YANG SAMA"], after=40)
    s.bullets([
        ("Kunjungannya sedikit", "situs sudah lama dibuat, tetapi yang datang "
                                 "membaca bisa dihitung."),
        ("Tidak ada yang menghubungi", "isinya sudah banyak, tetapi tidak berujung "
                                       "pada pertanyaan atau pendaftaran."),
        ("Tidak tahu yang bekerja", "tidak ada catatan halaman mana yang sebenarnya "
                                    "mendatangkan pasien."),
    ], gap=20, name_size=35, desc_size=25)
    return s.render("ss_hc68_websigagal_02_keluhan.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("EMPAT SEBAB", SKY), "PALING SERING"], after=40)
    s.bullets([
        ("Halaman layanan kosong", "hanya satu paragraf pengantar dan daftar "
                                   "tindakan, tanpa penjelasan yang membantu memutuskan."),
        ("Jalur menghubungi tersembunyi", "nomor telepon atau WhatsApp baru ketemu "
                                          "setelah menggulir lebih dari satu layar."),
        ("Lambat di ponsel", "gambar besar dan skrip berlebih membuat pembaca pergi "
                             "sebelum halaman selesai terbuka."),
        ("Isinya tentang rumah sakit", "berita internal dan penghargaan, bukan "
                                       "jawaban atas pertanyaan calon pasien."),
    ], gap=16, name_size=33, desc_size=23)
    return s.render("ss_hc68_websigagal_03_sebab.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("PERIKSA SENDIRI", SKY), "10 MENIT"], after=40)
    s.bullets([
        ("Dari ponsel Anda", "buka situs, cari satu layanan, lalu hitung berapa kali "
                             "menggulir sebelum menemukan cara menghubungi."),
        ("Baca sebagai calon pasien", "kalau Anda sendiri bingung menentukan langkah "
                                      "berikutnya, calon pasien juga akan bingung."),
        ("Minta satu orang di luar tim", "lakukan hal sama tanpa diarahkan, dan "
                                         "perhatikan di bagian mana dia berhenti membaca."),
    ], gap=20, name_size=34, desc_size=24)
    return s.render("ss_hc68_websigagal_04_periksa.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("MULAI DARI", SKY), "YANG MURAH"], after=40)
    s.lead("Rapikan halaman layanan yang sudah ada, pastikan jalur menghubungi mudah "
           "ditemukan, lalu bereskan kecepatan. Halaman baru ditambah belakangan.",
           after=28)
    s.para("StudioSoft membenahi situs dan strategi konten rumah sakit serta klinik, "
           "dari pemeriksaan sampai pengukuran.", size=30)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc68_websigagal_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc68 \u2014 situs rumah sakit & pasien baru")
    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)
