#!/usr/bin/env python3
"""studiosoft_hc63_carousel_gen.py — StudioSoft Healthcare Carousel hc63.

Topik : "10 Channel Digital Marketing Rumah Sakit yang Wajib Dikelola di Era Online"
Artikel: https://studiosoft.id/10-channel-digital-marketing-rumah-sakit-yang-wajib-dikelola-di-era-online/
         (WP id 3531) RE-AIR Threads (jejak Threads terakhir 28 Sep 2026 02:01Z / hc48 =
         PALING TUA di antara artikel HC hidup yang TIDAK punya jadwal Threads mendatang;
         artikel HTTP 200). Slide BARU ss_hc63_channel10_*.

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 (10 channel = 3+4+3).
"""
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_hc63_carousel")
TAG = "#marketingrumahsakit"
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([("10 CHANNEL", SKY), "DIGITAL MARKETING RS"], after=44)
    s.lead("Pasien tidak lagi hanya mengandalkan rekomendasi tetangga atau brosur. Mereka "
           "mencari di Google, membaca ulasan, membuka media sosial, lalu memutuskan.",
           after=30)
    s.para("Sepuluh channel berikut wajib dikelola agar rumah sakit tetap relevan dan "
           "dipercaya, bukan sekadar punya akun.", size=30)
    return s.render("ss_hc63_channel10_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("CHANNEL 1-3", SKY), "FONDASI DIGITAL"], after=40)
    s.bullets([
        ("Website resmi", "profil, layanan, jadwal dokter, tarif, dan pendaftaran online "
                          "dalam satu tempat yang mudah dibuka dari HP."),
        ("Google Search (SEO)", "optimasi halaman layanan supaya muncul saat orang mencari "
                                "layanan kesehatan yang Anda sediakan."),
        ("Google Maps & Business Profile", "alamat, jam operasional, foto fasilitas, dan "
                                            "ulasan pasien harus lengkap serta diperbarui."),
    ], gap=18, name_size=34, desc_size=24)
    return s.render("ss_hc63_channel10_02_fondasi.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("CHANNEL 4-7", SKY), "INTERAKSI & JANGKAUAN"], after=40)
    s.bullets([
        ("Media sosial", "Instagram dan Facebook untuk edukasi harian, pengumuman jadwal, "
                         "dan menjawab pertanyaan masyarakat."),
        ("YouTube & video edukasi", "penjelasan dokter dan tur fasilitas dalam bahasa "
                                    "sederhana, bisa dipotong jadi konten pendek."),
        ("Email & newsletter", "pengingat kontrol, vaksinasi, dan program khusus bagi pasien "
                               "yang sudah pernah berkunjung."),
        ("WhatsApp Business resmi", "tanya jadwal, biaya, sampai pendaftaran; ramah, "
                                    "responsif, dan bukan jalur konsultasi medis."),
    ], gap=16, name_size=32, desc_size=23)
    return s.render("ss_hc63_channel10_03_interaksi.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("CHANNEL 8-10", SKY), "VISIBILITAS & EDUKASI"], after=40)
    s.bullets([
        ("Iklan berbayar", "Google Ads dan social ads untuk menjangkau lebih banyak orang "
                           "saat layanan baru atau promo pemeriksaan dibuka."),
        ("Portal & direktori kesehatan", "pastikan nama dokter, jam praktik, dan kontak "
                                         "konsisten di setiap platform."),
        ("Blog edukasi kesehatan", "artikel yang humanis dan tidak menggurui menjadi pintu "
                                   "masuk organik dari Google."),
    ], gap=18, name_size=34, desc_size=24)
    s.para("Tidak harus sekaligus. Mulai dari yang paling dasar, lalu tambah channel lain "
           "seiring kapasitas tim.", size=27, after=0)
    return s.render("ss_hc63_channel10_04_visibilitas.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("MULAI DARI", SKY), "SATU CHANNEL"], after=40)
    s.lead("Yang terpenting bukan jumlah channel, melainkan konsistensi, etika, dan fokus "
           "pada kebutuhan pasien.", after=28)
    s.para("StudioSoft mengelola channel digital rumah sakit dan klinik secara bertahap dan "
           "terukur.", size=30)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc63_channel10_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc63 - 10 channel 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)
