from PIL import Image, ImageDraw, ImageFont

W, H = 1200, 675
CREAM = (244, 241, 234); INK = (14, 14, 14); BLUE = (42, 111, 219)
MUTE = (120, 116, 108)
D_GREY = (150, 150, 150); D_GREEN = (39, 201, 63)
D_BLUE = (90, 160, 255); D_AMBER = (255, 176, 64); D_CREAM = (238, 235, 228)
BASE = "/workspace/vc_covers"
FP = BASE + "/fonts/Onest.ttf"


def onest(size, wght=400):
    f = ImageFont.truetype(FP, size)
    try:
        f.set_variation_by_axes([wght])
    except Exception:
        pass
    return f


img = Image.new("RGB", (W, H), CREAM)
d = ImageDraw.Draw(img)

bx = 780
d.rectangle([bx, 0, W, H], fill=INK)
for i, c in enumerate([(255, 95, 86), (255, 189, 46), (39, 201, 63)]):
    d.ellipse([bx + 34 + i * 26, 36, bx + 34 + i * 26 + 14, 50], fill=c)

LXd = bx + 40
d.text((LXd, 108), "ОТЧЁТ КАБИНЕТА", font=onest(22, 600), fill=D_GREY)
d.text((LXd, 138), "ROAS 4.2×", font=onest(60, 800), fill=D_GREEN)
d.text((LXd + 302, 150), "✓", font=onest(44, 800), fill=D_GREEN)

d.line([LXd, 236, W - 44, 236], fill=(52, 52, 52), width=2)

d.text((LXd, 262), "ПО ХОЛДАУТУ (НА ДЕЛЕ)", font=onest(22, 600), fill=D_GREY)
d.text((LXd, 292), "1.9×", font=onest(60, 800), fill=D_BLUE)

vf = onest(26, 700)
vt = "ЗАВЫШЕН НА 55%"
tb = d.textbbox((0, 0), vt, font=vf)
vw, vh = tb[2] - tb[0], tb[3] - tb[1]
vx, vy, pad = LXd, 400, 14
d.rounded_rectangle([vx, vy, vx + vw + pad * 2, vy + vh + pad * 2],
                    radius=11, outline=D_AMBER, width=2)
d.text((vx + pad, vy + pad - tb[1]), vt, font=vf, fill=D_AMBER)

d.text((LXd, 470), "переписал на себя\nчужие продажи",
       font=onest(24, 500), fill=D_GREY, spacing=8)

LX = 66
kf = onest(23, 700)
d.text((LX, 66), "М А Р К Е Т И Н Г   П О - Ч Е С Т Н О М У", font=kf, fill=BLUE)
d.line([LX + 2, 104, LX + 150, 104], fill=BLUE, width=4)

tf_big = onest(140, 800)
d.text((LX - 5, 150), "ROAS", font=tf_big, fill=INK)
d.text((LX - 5, 300), "ВРЁТ", font=tf_big, fill=INK)

sf = onest(28, 500)
d.text((LX, 470), "Кабинет сам себе рисует пятёрку.\nПоказываю, кто и на сколько.",
       font=sf, fill=(60, 58, 54), spacing=9)

ff = onest(23, 600)
d.text((LX, H - 54), "safronov-marketing.ru", font=ff, fill=MUTE)

out = BASE + "/cover_roas.png"
img.save(out, "PNG")
print("saved", img.size, out)
