#!/usr/bin/env python3
"""Render all Kaizen campaign slides to PNG using Playwright."""
import asyncio
from pathlib import Path
from playwright.async_api import async_playwright

BASE = Path("/home/melai/Documents/kaizen-campaign")

slides = [
    ("campaign-14", "slide-1.html", "slide-1.png"),
    ("campaign-14", "slide-2.html", "slide-2.png"),
    ("campaign-14", "slide-3.html", "slide-3.png"),
    ("campaign-14", "slide-4.html", "slide-4.png"),
    ("campaign-14", "slide-5.html", "slide-5.png"),
    ("campaign-15", "slide-1.html", "slide-1.png"),
    ("campaign-15", "slide-2.html", "slide-2.png"),
    ("campaign-15", "slide-3.html", "slide-3.png"),
    ("campaign-15", "slide-4.html", "slide-4.png"),
    ("campaign-15", "slide-5.html", "slide-5.png"),
]

async def render():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        context = await browser.new_context(
            viewport={"width": 1080, "height": 1080},
            device_scale_factor=1
        )
        for campaign, html_file, png_file in slides:
            html_path = BASE / campaign / html_file
            png_path = BASE / campaign / png_file
            page = await context.new_page()
            await page.goto(f"file://{html_path}")
            # Wait for Google Fonts to load
            await page.wait_for_timeout(2500)
            await page.screenshot(path=str(png_path), full_page=False)
            await page.close()
            print(f"✅ {campaign}/{png_file}")
        await context.close()
        await browser.close()

asyncio.run(render())
print("All slides rendered!")
