#!/usr/bin/env python3
"""StudioSoft Healthcare Carousel — hc04 Iklan Digital (Meta Ads) untuk RS & Klinik
Resolusi: 1080×1350 (4:5 portrait)
BG: Hijau tua healthcare #047857 (emerald-800)
Teks: Putih #FFFFFF
Font: Poppins
Safe zone: 65px margin
"""
from PIL import Image, ImageDraw, ImageFont
import os

OUT_DIR = os.path.expanduser("~/.openclaw/workspace-atun/studiosoft_hc04_carousel")
os.makedirs(OUT_DIR, exist_ok=True)

W, H = 1080, 1350
GREEN = (4, 120, 87)      # #047857
WHITE = (255, 255, 255)
M = 65

FONT_DIR = os.path.expanduser("~/.fonts")

B140 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 140)
B120 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 120)
B100 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 100)
B85 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 85)
B50 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 50)
B38 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 38)
B30 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 30)
SB44 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-SemiBold.ttf"), 44)
SB36 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-SemiBold.ttf"), 36)
REG40 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 40)
REG36 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 36)
REG32 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 32)
REG28 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 28)
REG24 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 24)
REG20 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 20)


def header(d, page, total):
    d.text((M, 30), "STUDIOSOFT", font=B30, fill=WHITE)
    d.text((W - M, 30), f"{page}/{total}", font=REG24, fill=WHITE, anchor="rt")


def footer(d, hashtag):
    d.text((M, H - 50), "studiosoft.id", font=REG20, fill=WHITE)
    d.text((W - M, H - 50), hashtag, font=REG20, fill=WHITE, anchor="rt")


def slide_cover():
    img = Image.new("RGB", (W, H), GREEN)
    d = ImageDraw.Draw(img)
    header(d, 1, 5)

    title_lines = ["IKLAN DIGITAL", "UNTUK RS", "& KLINIK"]
    y = 280
    for line in title_lines:
        d.text((M, y), line, font=B120, fill=WHITE)
        y += 128

    y += 25
    for i in range(6):
        dx = M + i * 30
        d.line([(dx, y), (dx + 18, y)], fill=WHITE, width=3)

    y += 50
    d.text((M, y), "Jangkau pasien baru\nsecara efisien & terukur", font=REG36, fill=WHITE)

    footer(d, "#MetaAds")
    p = os.path.join(OUT_DIR, "01_cover.png")
    img.save(p, "PNG")
    print(f"✅ {p}")
    return p


def slide_mengapa():
    img = Image.new("RGB", (W, H), GREEN)
    d = ImageDraw.Draw(img)
    header(d, 2, 5)

    d.text((M, 140), "KENAPA IKLAN", font=B85, fill=WHITE)
    d.text((M, 240), "TARGET?", font=B85, fill=WHITE)

    items = [
        ("🎯", "Tepat sasaran ke pasien sekitarnya"),
        ("⚡", "Hasil cepat, tak perlu nunggu lama"),
        ("💲", "Anggaran fleksibel, bisa kecil dulu"),
        ("📊", "Terukur — tahu berapa pasien masuk"),
        ("📲", "Jangkau pasien di HP & media sosial"),
    ]
    y = 430
    for emoji, text in items:
        d.text((M, y), f"{emoji}  {text}", font=REG32, fill=WHITE)
        y += 125

    d.text((M, H - 110), "Iklan tepat sasaran = efisien, bukan buang biaya", font=SB36, fill=WHITE)
    footer(d, "#IklanDigital")
    p = os.path.join(OUT_DIR, "02_mengapa.png")
    img.save(p, "PNG")
    print(f"✅ {p}")
    return p


def slide_langkah():
    img = Image.new("RGB", (W, H), GREEN)
    d = ImageDraw.Draw(img)
    header(d, 3, 5)

    d.text((M, 140), "MULAI", font=B85, fill=WHITE)
    d.text((M, 240), "BERTAHAP", font=B85, fill=WHITE)

    items = [
        ("1️⃣", "Tentukan tujuan: pasien baru / pengunjung web"),
        ("2️⃣", "Buat landing page jelas & meyakinkan"),
        ("3️⃣", "Target radius & demografi pasien"),
        ("4️⃣", "Mulai budget kecil, ukur hasilnya"),
        ("5️⃣", "Optimasi iklan yang paling efektif"),
    ]
    y = 420
    for num, text in items:
        d.text((M, y), f"{num}  {text}", font=REG28, fill=WHITE)
        y += 120

    d.text((M, H - 110), "Mulai kecil dulu, lalu naikkan yang terbukti bekerja", font=REG28, fill=WHITE)
    footer(d, "#DigitalMarketing")
    p = os.path.join(OUT_DIR, "03_langkah.png")
    img.save(p, "PNG")
    print(f"✅ {p}")
    return p


def slide_hasil():
    img = Image.new("RGB", (W, H), GREEN)
    d = ImageDraw.Draw(img)
    header(d, 4, 5)

    d.text((M, 140), "HASIL", font=B85, fill=WHITE)
    d.text((M, 240), "TERUKUR", font=B85, fill=WHITE)

    items = [
        ("✅", "Pasien baru masuk secara konsisten"),
        ("📈", "Tahu biaya per pasien (cost per lead)"),
        ("👩‍⚕️", "Fokus target: ibu, anak, dewasa, dll"),
        ("💬", "Feedback langsung dari iklan dikelola"),
        ("🏆", "Unggul saat pasien mulai bandingkan"),
    ]
    y = 430
    for check, text in items:
        d.text((M, y), f"{check}  {text}", font=REG32, fill=WHITE)
        y += 130

    d.text((M, H - 110), "Bukan sekadar muncul — tapi diukur dan dioptimasi", font=SB36, fill=WHITE)
    footer(d, "#RumahSakit")
    p = os.path.join(OUT_DIR, "04_hasil.png")
    img.save(p, "PNG")
    print(f"✅ {p}")
    return p


def slide_cta():
    img = Image.new("RGB", (W, H), GREEN)
    d = ImageDraw.Draw(img)
    header(d, 5, 5)

    title = ["MAU IKLAN", "RS YANG", "EFEKTIF?"]
    y = 300
    for line in title:
        d.text((M, y), line, font=B100, fill=WHITE)
        y += 115

    y += 60
    d.text((M, y), "Partner Pertumbuhan Bisnis Berbasis Data", font=SB36, fill=WHITE)

    y += 100
    d.text((M, y), "Konsultasi GRATIS", font=B50, fill=WHITE)
    d.text((M, y + 80), "studiosoft.id", font=REG40, fill=WHITE)

    footer(d, "#StudioSoft")
    p = os.path.join(OUT_DIR, "05_cta.png")
    img.save(p, "PNG")
    print(f"✅ {p}")
    return p


def generate_all():
    print("🎨 StudioSoft Healthcare Carousel — hc04 Iklan Digital untuk RS & Klinik")
    print("=" * 50)
    paths = [
        slide_cover(),
        slide_mengapa(),
        slide_langkah(),
        slide_hasil(),
        slide_cta(),
    ]
    print(f"\n✅ {len(paths)} slide generated in {OUT_DIR}")
    return paths


if __name__ == "__main__":
    generate_all()
