#!/usr/bin/env python3
"""DMark FB Harian — 1 Slide (Template BG Orange)
Artikel: Strategi Brand The Skin Code Clinic: Membangun Klinik Kecantikan yang Dipercaya
Resolusi: 1080×1350 (4:5 portrait)
Background: Orange solid #F97316
Teks: Putih #FFFFFF
Font: Poppins
Safe zone: 20px dari semua tepi
Design margin: 65px
Content: vertikal middle
No boxes/cards/bubbles — pure typography
"""

from PIL import Image, ImageDraw, ImageFont
import os

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

W, H = 1080, 1350
ORANGE = (249, 115, 22)
WHITE = (255, 255, 255)
S20 = 20  # safe zone minimal

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

BOLD85  = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 85)
BOLD80  = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 80)
SUB     = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 36)
B24     = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Bold.ttf"), 24)
R20     = ImageFont.truetype(os.path.join(FONT_DIR, "Poppins-Regular.ttf"), 20)

M = 65

def fh(drw, text, font):
    b = drw.textbbox((0, 0), text, font=font)
    return b[3] - b[1]

def block_h(drw, lines, font, ls=1.3):
    total = 0
    for line in lines:
        total += int(fh(drw, line, font) * ls)
    return total

def draw_block(drw, lines, font, x, y, ls=1.3):
    for line in lines:
        lh = fh(drw, line, font)
        drw.text((x, y), line, font=font, fill=WHITE)
        y += int(lh * ls)
    return y

def header(d):
    d.text((M, S20), "DMARK", font=B24, fill=WHITE)

def divider(d, y, width=200):
    x = M
    while x < M + width:
        e = min(x + 14, M + width)
        d.line([(x, y), (e, y)], fill=WHITE, width=2)
        x += 24

def footer(d, left="www.dmark.id"):
    d.text((M, H - S20 - 5), left, font=R20, fill=WHITE)

def cy_from_total(d, total_h):
    hdr_bot = S20 + fh(d, "DMARK", B24) + 15
    ftr_top = H - S20 - fh(d, "www.dmark.id", R20) - 15
    return hdr_bot + (ftr_top - hdr_bot - total_h) // 2

# ============ SLIDE: STRATEGI BRAND SKIN CODE CLINIC ============
img = Image.new("RGB", (W, H), ORANGE)
d = ImageDraw.Draw(img)
header(d)

judul_lines = ["STRATEGI BRAND", "YANG DIPERCAYA"]
sub_lines = ["The Skin Code Clinic — klinik kulit,",
             "kelamin & estetika di Krian, Sidoarjo"]
items = [
    "Positioning tajam & konsisten",
    "Diagnosis tepat, teknologi modern",
    "Ditangani dr. Avril Novianto, Sp.DVE",
    "Konsistensi = kepercayaan",
]

total_h = 0
for line in judul_lines:
    total_h += int(fh(d, line, BOLD85) * 1.1)
total_h += 20 + 10 + 20
total_h += block_h(d, sub_lines, SUB, 1.5)
total_h += 20
for item in items:
    total_h += int(fh(d, item, SUB) * 1.4)

sy = cy_from_total(d, total_h)
ty = sy

for line in judul_lines:
    d.text((M, ty), line, font=BOLD85, fill=WHITE)
    ty += int(fh(d, line, BOLD85) * 1.1)

ty += 15
divider(d, ty, 200)
ty += 15

ty = draw_block(d, sub_lines, SUB, M, ty, 1.5)
ty += 10

for item in items:
    d.text((M, ty), "\u2611", font=SUB, fill=WHITE)
    d.text((M + 50, ty + 2), item, font=SUB, fill=WHITE)
    ty += int(fh(d, item, SUB) * 1.4)

footer(d, "www.dmark.id")
fname = os.path.join(OUT_DIR, "dmark_fb_20260806.png")
img.save(fname)
print(f"✅ Slide saved: {fname}")
