#!/usr/bin/env python3
"""
Generate 15 featured images for TSC new articles (Dermatology, Venereology, Aesthetic).
1000x567px .webp format.
"""
from PIL import Image, ImageDraw, ImageFont
import os

OUT_DIR = "/home/mantapman/.hermes/profiles/atun/workspace/tsc_15_artikel/images"
os.makedirs(OUT_DIR, exist_ok=True)

try:
    font_bold = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 36)
    font_reg = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 18)
    font_sm = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 13)
except:
    font_bold = ImageFont.load_default()
    font_reg = ImageFont.load_default()
    font_sm = ImageFont.load_default()

W, H = 1000, 567

# [filename, title_parts, bg, accent]
IMAGES = [
    ("tsc_d01_dermatology_flek.webp", ["7 Penyebab Flek Hitam", "& Cara Mengatasinya"], "#1A5276", "#5DADE2"),
    ("tsc_d02_dermatology_jerawat.webp", ["8 Jenis Jerawat", "& Penanganan Tepat"], "#641E16", "#E74C3C"),
    ("tsc_d03_dermatology_kulit_kering.webp", ["6 Penyebab Kulit Kering", "Bersisik & Solusinya"], "#0E6251", "#45B39D"),
    ("tsc_d04_dermatology_eksim.webp", ["5 Hal Penting soal", "Eksim (Dermatitis)"], "#4A235A", "#AF7AC5"),
    ("tsc_d05_dermatology_sunscreen.webp", ["7 Kesalahan Pakai", "Sunscreen!"], "#1B4F72", "#5499C7"),

    ("tsc_v06_venereology_pms.webp", ["6 Tanda Awal PMS", "Waspada Sejak Dini"], "#7B241C", "#E59866"),
    ("tsc_v07_venereology_kutil.webp", ["5 Fakta Kutil Kelamin", "(HPV) Jarang Diketahui"], "#78281F", "#F1948A"),
    ("tsc_v08_venereology_herpes.webp", ["7 Gejala Herpes", "Genital Sering Salah"], "#6E2C00", "#EB984E"),
    ("tsc_v09_venereology_sifilis.webp", ["5 Tahapan Sifilis", "Awal hingga Lanjutan"], "#154360", "#5DADE2"),
    ("tsc_v10_venereology_cegah.webp", ["8 Cara Efektif", "Cegah Penularan PMS"], "#0B5345", "#52BE80"),

    ("tsc_a11_aesthetic_kenyal.webp", ["6 Kebiasaan Bikin", "Kulit Kehilangan Kekenyalan"], "#1B2631", "#7F8C8D"),
    ("tsc_a12_aesthetic_hidung.webp", ["5 Bentuk Hidung Ideal", "& Cara Mendapatkannya"], "#17202A", "#85929E"),
    ("tsc_a13_aesthetic_bibir.webp", ["5 Cara Alami Bikin", "Bibir Sehat Menawan"], "#6C3483", "#A569BD"),
    ("tsc_a14_aesthetic_tubuh.webp", ["7 Area Tubuh Paling", "Sering Dikeluhkan"], "#1E8449", "#58D68D"),
    ("tsc_a15_aesthetic_perawatan.webp", ["6 Perawatan Estetika", "Populer 2026"], "#2E4053", "#5D6D7E"),
]

SECTION_LABELS = {
    "d": "DERMATOLOGY • The Skin Code Clinic",
    "v": "VENEREOLOGY • The Skin Code Clinic",
    "a": "AESTHETIC • The Skin Code Clinic",
}

for fname, (line1, line2), bg, accent in IMAGES:
    code = None
    if fname.startswith("tsc_d"):
        code = "d"
    elif fname.startswith("tsc_v"):
        code = "v"
    elif fname.startswith("tsc_a"):
        code = "a"
    section = SECTION_LABELS.get(code, "THE SKIN CODE CLINIC")

    img = Image.new("RGB", (W, H), bg)
    draw = ImageDraw.Draw(img)

    # Decorative
    draw.ellipse([-100, -100, 180, 180], fill=accent, outline=None)
    draw.ellipse([W-130, H-130, W+30, H+30], fill=accent, outline=None)
    draw.ellipse([400, -50, 500, 50], fill=accent, outline=None)

    # Dark overlay
    overlay = Image.new("RGBA", (W, H), (0, 0, 0, 0))
    overlay_draw = ImageDraw.Draw(overlay)
    overlay_draw.rectangle([0, 0, W, H], fill=(0, 0, 0, 40))
    img = Image.alpha_composite(img.convert("RGBA"), overlay).convert("RGB")
    draw = ImageDraw.Draw(img)

    # Top bar
    draw.rectangle([0, 0, W, 5], fill=accent)

    # Section label
    draw.text((35, 20), section, fill=accent, font=font_sm)

    # Decorative line
    draw.line([(35, 48), (W-35, 48)], fill=accent, width=2)

    # Title
    draw.text((35, 100), line1, fill="#FFFFFF", font=font_bold)
    draw.text((35, 142), line2, fill="#FFFFFF", font=font_bold)

    # Bottom
    draw.text((35, H-60), "Konsultasi Gratis", fill=accent, font=font_reg)
    draw.text((35, H-35), "Jl. Ruko Mandiri Residence, Krian, Sidoarjo", fill=accent, font=font_sm)

    # Bottom bar
    draw.rectangle([0, H-5, W, H], fill=accent)

    path = os.path.join(OUT_DIR, fname)
    img.save(path, "WEBP", quality=85)
    print(f"✅ {fname} ({os.path.getsize(path)} bytes)")

print("\n🎉 15 gambar featured image selesai!")
