/**
 * Verify the logo preparation step: flattened backdrops keyed to transparent,
 * ink brightness classified correctly.
 *
 *   npx tsx scripts/check-logo-prep.ts data/media/_preview/brand-logo-src.png
 */
import { promises as fs } from "fs";
import sharp from "sharp";
import { prepareLogoForStamp } from "../src/lib/generation/logo-overlay";

async function main() {
  const file = process.argv[2] ?? "data/media/_preview/brand-logo-src.png";
  const prepared = await prepareLogoForStamp(file);

  console.log("keyedBackground:", prepared.keyedBackground);
  console.log("lightInk       :", prepared.lightInk);

  const stats = await sharp(prepared.buffer).stats();
  const meta = await sharp(prepared.buffer).metadata();
  console.log("isOpaque       :", stats.isOpaque, `(${meta.width}x${meta.height})`);

  // Checkerboard proof sheet so transparency is visible on inspection.
  const out = "data/media/_preview/logo-prepared.png";
  await fs.writeFile(out, prepared.buffer);
  const onDark = await sharp(prepared.buffer).flatten({ background: "#0B1F3A" }).png().toBuffer();
  await fs.writeFile("data/media/_preview/logo-prepared-on-dark.png", onDark);
  console.log("saved          :", out, "+ logo-prepared-on-dark.png");
}

void main();
