#!/usr/bin/env python3
"""DMark BG Orange — Guerilla Marketing Case Study (Single Slide)
Resolusi: 1080x1350px (4:5 portrait)
Background: Orange #F97316
Teks: Putih #FFFFFF
Font: Poppins
Margin: 65px semua sisi
"""

from PIL import Image, ImageDraw, ImageFont
import os

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

W, H = 1080, 1350
ORANGE = (249, 115, 22)
WHITE = (255, 255, 255)
M = 65  # margin

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

HEADER_FONT = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 24)
PAGE_FONT  = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 22)
FOOTER_FONT = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 20)
TITLE_FONT  = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 85)
BODY_FONT   = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 36)
SUBTITLE_FONT = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 30)
HASHTAG_FONT = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 20)
LINK_FONT   = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 24)

def wrap_text(text, font, max_width, draw):
    """Wrap text to fit within max_width pixels."""
    words = text.split()
    lines = []
    current_line = ""
    for word in words:
        test_line = current_line + " " + word if current_line else word
        bbox = draw.textbbox((0, 0), test_line, font=font)
        if bbox[2] - bbox[0] <= max_width:
            current_line = test_line
        else:
            if current_line:
                lines.append(current_line)
            current_line = word
    if current_line:
        lines.append(current_line)
    return lines

# ============ CREATE CANVAS ============
img = Image.new("RGB", (W, H), ORANGE)
d = ImageDraw.Draw(img)

# --- HEADER ---
d.text((M, M), "DMARK", font=HEADER_FONT, fill=WHITE)
d.text((W - M, M), "01/01", font=PAGE_FONT, fill=WHITE, anchor="rt")

# --- TITLE ---
title_text = "Sukses dengan Guerilla Marketing: Studi Kasus Brand yang Berhasil Naik Kelas"
title_lines = wrap_text(title_text, TITLE_FONT, W - (2 * M), d)

ty = 180
for line in title_lines:
    d.text((M, ty), line, font=TITLE_FONT, fill=WHITE)
    ty += 110

# --- DIVIDER ---
dy = ty + 40
divider_width = 250
xs, xe = M, M + divider_width
dxy = 14
g = 10
x = xs
while x < xe:
    e = min(x + dxy, xe)
    d.line([(x, dy), (e, dy)], fill=WHITE, width=2)
    x += dxy + g

# --- BODY / SUBTITLE ---
body_text = "Kenapa brand bisa naik kelas dengan strategi guerrilla marketing? Baca studi kasus lengkapnya!"
body_lines = wrap_text(body_text, BODY_FONT, W - (2 * M), d)

by = dy + 65
for line in body_lines:
    d.text((M, by), line, font=BODY_FONT, fill=WHITE)
    by += 60

# --- LINK ---
link_text = "dmark.id/sukses-guerilla-marketing-studi-kasus-brand/"
ly = by + 45
d.text((M, ly), link_text, font=LINK_FONT, fill=WHITE)

# --- FOOTER: www.dmark.id (kiri) + hashtags (kanan) ---
hashtag_text = "#GuerillaMarketing #Branding #PemasaranKreatif"
hashtag_text2 = "#BisnisSurabaya"
fy = H - 65
d.text((M, fy), "www.dmark.id", font=FOOTER_FONT, fill=WHITE)
d.text((W - M, fy), hashtag_text, font=FOOTER_FONT, fill=WHITE, anchor="rt")
d.text((W - M, fy - 28), hashtag_text2, font=FOOTER_FONT, fill=WHITE, anchor="rt")

# --- SAVE ---
output_path = os.path.join(OUT_DIR, "dmark_guerilla_marketing.png")
img.save(output_path)
print(f"✅ Slide saved: {output_path}")
