#!/usr/bin/env python3
"""studiosoft_hc55_carousel_gen.py — StudioSoft Healthcare Carousel hc55.

Topik : "SEO Rumah Sakit: 5 Pencarian Pasien yang Wajib Dikuasai"
Artikel: https://studiosoft.id/seo-rumah-sakit/ (WP id 9164, publish 3 Okt 2026 08:00 WIB)
         ARTIKEL HEALTHCARE BARU — jejak Threads/LinkedIn/FB = 0 di ketiga platform.
         Link HTTP 200 terverifikasi 4 Okt 2026 02:00 WIB.

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"   # JANGAN pakai expanduser("~")
OUT_DIR = os.path.join(WS, "studiosoft_hc55_carousel")
TAG = "#seorumahsakit"
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([("SEO RUMAH SAKIT", SKY), "5 PENCARIAN", "CALON PASIEN"], after=44)
    s.lead("Pasien tidak mencari rumah sakit seperti mencari restoran. Mereka mengetik keluhan, "
           "nama layanan, atau nama dokter.", after=34)
    s.para("Kalau halaman tidak disusun mengikuti cara orang mencari, konten sebagus apa pun "
           "tidak akan muncul di hasil pencarian.", size=30)
    return s.render("ss_hc55_seors_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("KENAPA", SKY), "LEBIH KETAT"], after=44)
    s.bullets([
        ("Topik kesehatan dinilai lebih tinggi", "Google menilai halaman gejala dan pengobatan "
                                                 "dengan standar yang lebih ketat."),
        ("Tunjukkan siapa penulisnya", "artikel tanpa nama, rujukan, dan tanggal pembaruan "
                                       "cenderung sulit bersaing."),
        ("Bukan soal teknis", "ini soal kredibilitas yang harus terlihat di halaman."),
        ("Pilih rujukan resmi", "kementerian kesehatan atau organisasi profesi, bukan situs "
                                "yang tidak jelas asalnya."),
        ("Sertakan keterangan", "isi bersifat informasi umum dan tidak menggantikan pemeriksaan "
                                "langsung."),
    ], gap=20, name_size=38, desc_size=26)
    return s.render("ss_hc55_seors_02_ketat.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("LIMA JENIS", SKY), "PENCARIAN PASIEN"], after=44)
    s.bullets([
        ("Berdasarkan gejala", "keluhan sehari-hari seperti nyeri dada atau bayi demam tiga hari."),
        ("Berdasarkan layanan", "medical check up, vaksinasi, fisioterapi. Satu halaman per layanan."),
        ("Berdasarkan dokter", "nama, spesialisasi, dan jadwal praktik yang bisa dibaca mesin."),
        ("Niat mendesak", "IGD terdekat, buka 24 jam, ambulans. Kecepatan dan kejelasan menang."),
        ("Berdasarkan lokasi", "profil bisnis Google yang konsisten dengan data di website."),
    ], gap=20, name_size=38, desc_size=26)
    return s.render("ss_hc55_seors_03_pencarian.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("STRUKTUR &", SKY), "KESALAHAN UMUM"], after=44)
    s.bullets([
        ("Satu topik per halaman", "jangan menaruh semua layanan dalam satu halaman panjang "
                                    "yang tidak cocok dengan pencarian spesifik."),
        ("Subjudul yang menjelaskan", "hindari subjudul generik seperti Pendahuluan atau Penutup."),
        ("Jawaban di awal bagian", "memudahkan pembaca memindai sekaligus sistem mengambil "
                                   "ringkasan."),
        ("Tambahkan data terstruktur", "skema untuk rumah sakit, layanan, dokter, dan pertanyaan "
                                       "umum."),
        ("Jangan jadikan gambar", "jadwal dokter sebagai gambar tidak terbaca dan cepat usang."),
    ], gap=20, name_size=38, desc_size=26)
    return s.render("ss_hc55_seors_04_struktur.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("UKUR", SKY), "PERMINTAANNYA"], after=44)
    s.lead("Untuk rumah sakit, ukuran paling berguna bukan peringkat di satu kata kunci, "
           "melainkan pertumbuhan permintaan.", after=30)
    s.para("Pantau halaman layanan yang mulai mendapat tayangan, pencarian bermerek, klik ke "
           "telepon atau WhatsApp, dan pendaftaran dari kanal pencarian.", size=30)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc55_seors_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc55 \u2014 SEO rumah sakit")
    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)
