#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""studiosoft_albums_gen.py — rebuild 14 album carousel SEO StudioSoft (ss_opt_05..20)
dengan LAYOUT BARU + WARNA BARU (perintah Bos 16 Sep 2026).

Sumber konten: gambar lama ss_opt_NN_XX.jpg (generator aslinya sudah hilang) —
teks dibaca ulang dari gambar, ISI TIDAK DIUBAH, hanya design-nya.

Aturan design (standar baru):
  • rata KIRI, satu blok di TENGAH vertikal, TANPA garis separator
  • judul Poppins Bold 85 (auto-fit), sub 30, item 40 semi-bold
  • warna: album BIRU  -> background #122B63, teks putih
           album PUTIH -> background #FFFFFF, teks #122B63

Output: studiosoft_albums_fixed/ss_opt2_NN_0X.png   (4 slide per album)
"""
import json
import os

from PIL import Image

import ss_carousel_lib as L

HERE = os.path.dirname(os.path.abspath(__file__))
OUT_DIR = os.path.join(HERE, "studiosoft_albums_fixed")
CONTENT = json.load(open(os.path.join(HERE, "ss_album_content.json"), encoding="utf-8"))

BIRU = (18, 43, 99)      # #122B63
PUTIH = (255, 255, 255)


def render_album(num, spec):
    blue = spec["bg"] == "blue"
    bg = BIRU if blue else PUTIH
    fg = PUTIH if blue else BIRU
    made = []
    for i, sl in enumerate(spec["slides"], 1):
        s = L.Slide(i, 4, tag="", bg=bg, footer_left="www.studiosoft.id", fg=fg)
        s.title(sl["title"], after=46 if sl.get("sub") else 60)
        if sl.get("sub"):
            s.para(sl["sub"], size=30, after=52)
        if sl.get("items"):
            s.bullets(sl["items"], gap=30)
        p = s.render("ss_opt2_%s_%02d.png" % (num, i), OUT_DIR, quiet=False)
        made.append(p)
    return made


def main():
    total = 0
    for num in sorted(CONTENT):
        print("── album %s (%s) — %s" % (num, CONTENT[num]["bg"], CONTENT[num]["judul"]))
        for p in render_album(num, CONTENT[num]):
            print("   OK", p, Image.open(p).size)
            total += 1
    print("\nOK %d slide -> %s" % (total, OUT_DIR))


if __name__ == "__main__":
    main()
