#!/usr/bin/env python3
"""
Create Yasma Natura featured image: Adaptogen
Ukuran: 1000x567 WebP
"""
from PIL import Image, ImageDraw, ImageFont
import os

W, H = 1000, 567
MARGIN = 30
MAX_W = W - MARGIN * 2

ORANGE = (255, 106, 0, 255)
WHITE = (255, 255, 255, 255)
DARK_OVERLAY = (0, 0, 0, 80)

FONT_DIR = "/usr/share/fonts/truetype"
try:
    FTITLE = ImageFont.truetype(f"{FONT_DIR}/dejavu/DejaVuSans-Bold.ttf", 48)
    FSUB = ImageFont.truetype(f"{FONT_DIR}/dejavu/DejaVuSans.ttf", 20)
    FBRAND = ImageFont.truetype(f"{FONT_DIR}/dejavu/DejaVuSans-Bold.ttf", 18)
except:
    FTITLE = FSUB = FBRAND = ImageFont.load_default()

def load_bg(path):
    img = Image.open(path).convert("RGBA")
    sw, sh = img.size
    tr = W / H
    sr = sw / sh
    if sr > tr:
        nh = sh
        nw = int(sh * tr)
        left = (sw - nw)//2; top = 0
    else:
        nw = sw
        nh = int(sw/tr)
        left = 0; top = (sh - nh)//2
    img = img.crop((left, top, left+nw, top+nh)).resize((W,H), Image.LANCZOS)
    overlay = Image.new("RGBA", (W,H), DARK_OVERLAY)
    return Image.alpha_composite(img, overlay)

def wrap(draw, t, f, mw):
    words = t.split()
    lines, cur = [], []
    for w in words:
        test = " ".join(cur + [w])
        bb = draw.textbbox((0,0), test, font=f)
        if bb[2]-bb[0] <= mw:
            cur.append(w)
        else:
            if cur: lines.append(" ".join(cur))
            cur = [w]
    if cur: lines.append(" ".join(cur))
    return lines

def make():
    img = load_bg("pexels_adaptogen.jpg")
    dr = ImageDraw.Draw(img)
    dr.text((MARGIN, MARGIN), "YASMA NATURA", font=FBRAND, fill=ORANGE)

    cy = H//2 - 10

    title = "Mengenal Adaptogen"
    t_lines = wrap(dr, title, FTITLE, MAX_W)
    tlh = sum(FTITLE.getbbox("A")[3]-FTITLE.getbbox("A")[1]+8 for _ in t_lines)

    sub = "Bahan Herbal Masa Depan untuk\nBisnis Minuman Kesehatan"
    s_lines = wrap(dr, sub, FSUB, MAX_W)
    slh = sum(FSUB.getbbox("A")[3]-FSUB.getbbox("A")[1]+6 for _ in s_lines)

    total = tlh + 15 + slh
    y = cy - total//2

    for line in t_lines:
        bb = dr.textbbox((0,0), line, font=FTITLE)
        dr.text(((W-(bb[2]-bb[0]))//2, y), line, font=FTITLE, fill=WHITE)
        y += bb[3]-bb[1]+8

    # divider
    y += 5
    ds = (W-200)//2
    for i in range(7):
        dx = ds + i*30
        dr.line([(dx, y), (dx+18, y)], fill=ORANGE, width=2)

    y += 10
    for line in s_lines:
        bb = dr.textbbox((0,0), line, font=FSUB)
        dr.text(((W-(bb[2]-bb[0]))//2, y), line, font=FSUB, fill=WHITE)
        y += bb[3]-bb[1]+6

    dr.text((W-MARGIN-150, H-MARGIN-10), "www.yasmanatura.co.id", font=FBRAND, fill=ORANGE)
    return img

os.makedirs("output", exist_ok=True)
print("🎨 Creating Adaptogen featured image...")
img = make()
out = "output/yasma_adaptogen_featured.webp"
img.save(out, "WEBP", quality=92, method=6)
print(f"  ✅ {out}")
