#!/usr/bin/env python3
"""studiosoft_hc41_carousel_gen.py — StudioSoft Healthcare Carousel hc41.

Topik : "Bagaimana Data Analytics Membantu Rumah Sakit Memahami Kebutuhan Pasien"
Artikel: https://studiosoft.id/data-analytics-rumah-sakit-kebutuhan-pasien/

Konteks run 20 Sep 2026 (02:00 WIB / 19 Sep 19:00 UTC):
- Stok artikel healthcare BARU masih HABIS (WP REST 19 Sep: artikel terbaru
  `creative-agency-surabaya-solusi-kreatif-brand-berbeda`, non-healthcare).
- Semua topik healthcare belum-tayang sudah dipakai hc01-hc40 -> RE-AIR (aturan tetap:
  nama file slide BARU `ss_hc41_analytics_*`, pola mitigasi error media-fetch Repliz).
- Topik data-analytics terakhir tayang di Threads SS 23 Agu 2026 (carousel lama
  "Ukur Hasil Digital Marketing RS & Klinik") -> jarak ~4 minggu, paling lama
  di antara kandidat healthcare, dan belum masuk seri hc31-hc40.

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

OUT_DIR = os.path.expanduser("~/.hermes/profiles/atun/workspace/studiosoft_hc41_carousel")
TAG = "#dataanalytics"
BG = (18, 43, 99)      # #122B63 — warna baku Bos (16 Sep 2026)
SKY = L.SKY


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


def s1():
    s = mk(1)
    s.title([("DATA BICARA,", SKY), "RS MENDENGAR,", "PASIEN PUAS"], after=52)
    s.lead("Rumah sakit dan klinik menghasilkan data setiap hari \u2014 dari pendaftaran "
           "pasien sampai interaksi sosial media.", after=40)
    s.para("Masalahnya bukan kurang data, tapi data itu jarang dibaca.", size=30)
    return s.render("ss_hc41_analytics_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("DATA YANG SERING", SKY), "TIDAK TERBACA"], after=48)
    s.bullets([
        ("Website", "Halaman paling banyak dikunjungi, asal pengunjung, dan titik "
                    "mereka pergi."),
        ("Sosial media", "Konten paling banyak disimpan, demografi pengikut, jam aktif "
                         "audiens."),
        ("Booking layanan", "Layanan terpopuler, jam booking tertinggi, demografi pasien."),
        ("Review pasien", "Apa yang paling dipuji dan paling dikeluhkan."),
        ("Iklan", "Iklan paling efektif dan biaya per pasien baru."),
    ], gap=26, name_size=36, desc_size=28)
    return s.render("ss_hc41_analytics_02_data.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("CONTOH", SKY), "NYATA"], after=46)
    s.lead("Sebuah RS di Surabaya menemukan 60% traffic website-nya datang dari "
           "pencarian \u201cbiaya operasi katarak\u201d.", after=38)
    s.para("Setelah dibuatkan halaman khusus tentang biaya dan prosedur, booking layanan "
           "itu naik 35% dalam 2 bulan.", size=30, after=14)
    s.para("Tanpa data, permintaan sebesar itu tidak akan pernah terlihat.", size=30)
    return s.render("ss_hc41_analytics_03_contoh.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("DARI DATA KE", SKY), "TINDAKAN"], after=46)
    s.bullets([
        ("Rapikan pelacakan", "Website, booking, dan iklan harus terukur \u2014 bukan "
                              "dikira-kira."),
        ("Baca niat pasien", "Kata kunci menunjukkan tahapnya: cari informasi atau siap "
                             "datang."),
        ("Uji, lalu ukur", "Bandingkan konten dan iklan mana yang menambah booking."),
        ("Putuskan pakai angka", "Anggaran diarahkan ke kanal yang hasilnya terukur."),
    ], gap=28, name_size=36, desc_size=28)
    return s.render("ss_hc41_analytics_04_langkah.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("MULAI DARI", SKY), "DATA ANDA"], after=48)
    s.lead("Tidak perlu sistem yang rumit. Yang penting data dipasang, dibaca, dan "
           "dijadikan dasar keputusan.", after=38)
    s.para("Butuh partner digital marketing berbasis data untuk RS atau klinik Anda?",
           size=30, after=10)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc41_analytics_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc41 \u2014 Data Analytics untuk RS & 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)
