#!/usr/bin/env python3
"""studiosoft_hc46_carousel_gen.py — StudioSoft Healthcare Carousel hc46 (RE-AIR Threads).

Topik : "Cara Klinik Kecantikan di Surabaya Bisa Ditemukan Lebih Cepat di Google"
Artikel: https://studiosoft.id/cara-klinik-kecantikan-di-surabaya-bisa-ditemukan-lebih-cepat-di-google/
         (WP post id 3767, publish 14 Apr 2026)

Konteks run 25 Sep 2026 (02:00 WIB / 24 Sep 19:00 UTC):
- Stok artikel healthcare BARU masih HABIS (WP REST 24 Sep: artikel terbaru 24 Sep
  `ai-dan-pekerjaan-digital-marketer-apa-yang-berubah` kategori AI = non-healthcare;
  kategori healthcare-digital (1042) tetap 4 post, semua sudah dipakai).
- AUDIT 25 Sep (hc46_audit.py): 7 artikel HC seri ini masih DEAD/404 -> dipakai hanya
  artikel yang terverifikasi 200.
- Threads: artikel ini terakhir tayang di Threads SS 8 Sep 2026 (album 22:00) = PALING TUA
  di antara artikel HC yang masih hidup -> re-air + nama file slide BARU `ss_hc46_klinikcan_*`
  (mitigasi error media-fetch Repliz yang intermiten).

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

WS = "/home/mantapman/.hermes/profiles/atun/workspace"   # JANGAN pakai expanduser("~"):
OUT_DIR = os.path.join(WS, "studiosoft_hc46_carousel")
TAG = "#kontenkesehatan"
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([("KLINIK ANDA", SKY), "BELUM MUNCUL", "DI HALAMAN 1?"], after=48)
    s.lead("Calon pasien di kota besar tidak lagi melihat spanduk. Mereka mengetik di "
           "Google, lalu hampir selalu memilih dari 5 hasil teratas.", after=36)
    s.para("Kalau klinik Anda ada di halaman kedua, pasien itu sudah memesan di tempat lain.",
           size=30)
    return s.render("ss_hc46_klinikcan_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("LANGKAH 1-2:", SKY), "MUNCUL DI LOKAL"], after=44)
    s.bullets([
        ("Rapikan Google Business Profile", "alamat, jam praktik, layanan, dan foto asli; "
                                            "balas ulasan pasien secara rutin."),
        ("Riset kata kunci lokal", "contoh: facial glowing Surabaya, klinik botox aman "
                                   "Surabaya, perawatan estetika Surabaya Selatan."),
        ("Pilih volume tinggi, kompetisi rendah", "klinik bisa naik peringkat lebih cepat "
                                                  "tanpa iklan mahal."),
    ], gap=26, name_size=38, desc_size=28)
    return s.render("ss_hc46_klinikcan_02_lokal.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("LANGKAH 3-4:", SKY), "WEBSITE & ISI"], after=44)
    s.bullets([
        ("Kecepatan di ponsel", "kompresi gambar, caching, desain responsive, navigasi "
                                "sederhana \u2014 Google mengutamakan situs yang nyaman."),
        ("Tombol aksi yang jelas", "tombol booking terlihat tanpa harus menggulir jauh."),
        ("Konten edukatif", "panduan memilih treatment yang aman dan sesuai jenis kulit, "
                            "bukan hanya daftar promo."),
    ], gap=26, name_size=38, desc_size=28)
    return s.render("ss_hc46_klinikcan_03_website.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("LANGKAH 5:", SKY), "REPUTASI", "& PEMANTAUAN"], after=44)
    s.bullets([
        ("Backlink lokal berkualitas", "direktori bisnis daerah, tulisan tamu di media "
                                       "lokal, kolaborasi komunitas \u2014 hindari spam."),
        ("Ukur setiap bulan", "peringkat kata kunci, sumber trafik, dan konversi dari "
                              "pencarian organik."),
        ("Sesuaikan strategi", "algoritma Google berubah; yang menang adalah yang rajin "
                               "mengevaluasi."),
    ], gap=26, name_size=38, desc_size=28)
    return s.render("ss_hc46_klinikcan_04_reputasi.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("VISIBILITAS DI", SKY), "GOOGLE =", "PASIEN BARU"], after=44)
    s.lead("Tidak harus semua sekaligus. Rapikan profil Google dan halaman layanan dulu, "
           "lalu bangun konten serta reputasi secara konsisten.", after=36)
    s.para("Butuh partner digital marketing untuk klinik atau RS Anda?",
           size=30, after=10)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc46_klinikcan_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc46 \u2014 Klinik ditemukan lebih cepat di Google")
    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)
