#!/usr/bin/env python3
"""DMark Carousel — 10 Slide v3
Bg putih, teks orange, judul 150px, start tengah vertical
"""

from PIL import Image, ImageDraw, ImageFont
import os

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

W, H = 1080, 1350
BG = (255, 255, 255)
TXT = (249, 115, 22)

FONT_DIR = os.path.expanduser("~/.fonts")
TITLE = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 150)
BODY = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 34)
BOLD24 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 24)
REG20 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 20)
REG22 = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 22)
CHECK = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 30)

M = 65
# Start vertical tengah — konten mulai dari ~360px
START_Y = 360

def wrap_text(draw, text, font, max_w=920):
    lines = []
    for para in text.split("\n"):
        words = para.split()
        cur = ""
        for w in words:
            test = cur + " " + w if cur else w
            if draw.textbbox((0,0), test, font=font)[2] > max_w and cur:
                lines.append(cur)
                cur = w
            else:
                cur = test
        if cur: lines.append(cur)
    return lines

def draw_title(draw, texts, start_y, font=TITLE, fill=TXT, max_w=920, ls=1.25):
    all_lines = []
    for t in texts:
        all_lines.extend(wrap_text(draw, t, font, max_w))
    cy = start_y
    for line in all_lines:
        draw.text((M, cy), line, font=font, fill=fill)
        lh = draw.textbbox((0,0), line, font=font)[3] - draw.textbbox((0,0), line, font=font)[1]
        cy += int(lh * ls)
    return cy

def draw_body(draw, texts, start_y, font=BODY, fill=TXT, max_w=920, ls=1.6):
    all_lines = []
    for t in texts:
        all_lines.extend(wrap_text(draw, t, font, max_w))
    cy = start_y
    for line in all_lines:
        draw.text((M, cy), line, font=font, fill=fill)
        lh = draw.textbbox((0,0), line, font=font)[3] - draw.textbbox((0,0), line, font=font)[1]
        cy += int(lh * ls)
    return cy

def header(draw, page):
    draw.text((M, M), "DMARK", font=BOLD24, fill=TXT)
    draw.text((W - M, M), page, font=REG22, fill=TXT, anchor="rt")

def footer(draw, left="www.dmark.id", right=""):
    fy = H - 65
    draw.text((M, fy), left, font=REG20, fill=TXT)
    if right:
        draw.text((W - M, fy), right, font=REG20, fill=TXT, anchor="rt")

def divider(draw, y, width=280):
    xs, xe = M, M + width
    dash, gap = 14, 10
    x = xs
    while x < xe:
        e = min(x + dash, xe)
        draw.line([(x, y), (e, y)], fill=TXT, width=2)
        x += dash + gap
    return y + 40

def checklist(draw, items, start_y):
    cy = start_y
    for item in items:
        draw.text((M, cy), "\u2611", font=CHECK, fill=TXT)
        draw.text((M + 48, cy + 2), item, font=CHECK, fill=TXT)
        cy += 54

def new_slide():
    return Image.new("RGB", (W, H), BG)

# ============ SLIDE 1: PILIH PLATFORM ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "01/10")
sy = START_Y
ey = draw_title(d, ["PILIH"], sy)
ey = divider(d, ey + 30)
ey = draw_title(d, ["PLATFORM"], ey)
draw_body(d, ["Tidak perlu aktif di semua platform.", "Pilih yang sesuai dengan audiens Anda."], ey + 180)
checklist(d, ["IG: visual & storytelling", "LinkedIn: B2B & profesional", "TikTok: audiens muda & viral", "FB: jangkauan luas semua usia", "X (Twitter): berita & opini"], ey + 380)
footer(d, "www.dmark.id", "#MediaSosial #DMARK #TipsDigital #SocialMedia")
img.save(os.path.join(OUT_DIR, "01_cover.png"))

# ============ SLIDE 2: DMARK ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "02/10")
sy = START_Y
ey = draw_title(d, ["DMARK"], sy)
ey = divider(d, ey + 30)
ey = draw_title(d, ["BUKAN SEKEDAR AGENCY"], ey)
draw_body(d, ["Digital marketing agency yang fokus", "pada strategi terukur untuk bisnis", "Anda. Kreatif. Strategis. Profesional."], ey + 180)
footer(d, "www.dmark.id")
img.save(os.path.join(OUT_DIR, "02_kenalan.png"))

# ============ SLIDE 3: MENGAPA DIGITAL MARKETING ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "03/10")
sy = START_Y - 40
ey = draw_title(d, ["MENGAPA"], sy)
ey = divider(d, ey + 30)
ey = draw_title(d, ["DIGITAL MARKETING?"], ey)
draw_body(d, ["Karena 90% konsumen mencari bisnis", "secara online sebelum membeli.", "Tanpa strategi digital yang tepat,", "Anda kehilangan peluang besar."], ey + 180)
footer(d, "www.dmark.id")
img.save(os.path.join(OUT_DIR, "03_mengapa.png"))

# ============ SLIDE 4: APA YANG KAMI LAKUKAN ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "04/10")
sy = START_Y - 40
ey = draw_title(d, ["APA YANG"], sy)
ey = divider(d, ey + 30)
ey = draw_title(d, ["KAMI LAKUKAN?"], ey)
checklist(d, ["Strategi konten & SEO", "Iklan Google & Meta Ads", "Branding & desain visual", "Manajemen media sosial", "Analitik & optimalisasi"], ey + 180)
footer(d, "www.dmark.id", "#DMARK #DigitalMarketing #Branding #Strategi")
img.save(os.path.join(OUT_DIR, "04_layanan.png"))

# ============ SLIDE 5: KENAPA MEMILIH DMARK ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "05/10")
sy = START_Y - 40
ey = draw_title(d, ["KENAPA"], sy)
ey = divider(d, ey + 30)
ey = draw_title(d, ["MEMILIH DMARK?"], ey)
draw_body(d, ["Kami tidak sekedar membuat konten.", "Kami merancang strategi yang", "berdampak pada pertumbuhan bisnis", "Anda. Terukur. Profesional."], ey + 180)
footer(d, "www.dmark.id")
img.save(os.path.join(OUT_DIR, "05_kenapa_dmark.png"))

# ============ SLIDE 6: BRANDING YANG KUAT ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "06/10")
sy = START_Y - 40
ey = draw_title(d, ["BRANDING"], sy)
ey = divider(d, ey + 30)
ey = draw_title(d, ["YANG KUAT"], ey)
draw_body(d, ["Merek yang kuat adalah aset", "paling berharga bisnis Anda.", "Kami bangun identitas visual yang", "konsisten dan mudah diingat."], ey + 180)
footer(d, "www.dmark.id")
img.save(os.path.join(OUT_DIR, "06_branding.png"))

# ============ SLIDE 7: KONTEN BERKUALITAS ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "07/10")
sy = START_Y - 80
ey = draw_title(d, ["KONTEN", "BERKUALITAS"], sy)
ey = divider(d, ey + 30)
draw_body(d, ["Konten yang relevan menarik audiens", "yang tepat. Artikel, video, dan desain", "yang informatif meningkatkan kepercayaan", "dan konversi bisnis Anda."], ey + 180)
footer(d, "www.dmark.id", "#DMARK #KontenKreatif #DigitalMarketing #Branding")
img.save(os.path.join(OUT_DIR, "07_konten.png"))

# ============ SLIDE 8: BERDASARKAN DATA ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "08/10")
sy = START_Y - 80
ey = draw_title(d, ["BERDASARKAN", "DATA"], sy)
ey = divider(d, ey + 30)
draw_body(d, ["Setiap keputusan marketing harus", "berdasarkan data, bukan perasaan.", "Kami pantau, ukur, dan optimalkan", "setiap kampanye untuk hasil maksimal."], ey + 180)
footer(d, "www.dmark.id")
img.save(os.path.join(OUT_DIR, "08_data.png"))

# ============ SLIDE 9: SIAP TUMBUH ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "09/10")
sy = START_Y - 80
ey = draw_title(d, ["SIAP", "TUMBUH?"], sy)
ey = divider(d, ey + 30)
draw_body(d, ["Bersama DMARK, wujudkan pertumbuhan", "digital bisnis Anda. Strategi tepat,", "eksekusi profesional, hasil", "yang terukur."], ey + 180)
footer(d, "www.dmark.id", "#DMARK #DigitalMarketing #Growth #StrategiBisnis")
img.save(os.path.join(OUT_DIR, "09_growth.png"))

# ============ SLIDE 10: SIAP MULAI KONSULTASI GRATIS ============
img = new_slide()
d = ImageDraw.Draw(img)
header(d, "10/10")
sy = START_Y - 40
ey = draw_title(d, ["SIAP MULAI?"], sy)
ey = divider(d, ey + 30)
ey = draw_title(d, ["KONSULTASI", "GRATIS"], ey)
draw_body(d, ["Hubungi kami untuk diskusi strategi", "digital marketing bisnis Anda."], ey + 180)
footer(d, "www.dmark.id")
img.save(os.path.join(OUT_DIR, "10_siap_mulai.png"))

print(f"✅ 10 slide v3 selesai! File di: {OUT_DIR}")
for f in sorted(os.listdir(OUT_DIR)):
    print(f"  {f}")
