#!/usr/bin/env bash
# Regenerates wporg-assets/screenshot-N.png and the two banners from the
# marketing device composites produced by the app repo's appshots pipeline.
#
# Usage:
#   ./generate.sh [SRC_DIR]
#
# SRC_DIR defaults to ~/Desktop/WP and must contain the 2400x1600 composites
# listed in ORDER below. Requires `typst` (https://typst.app) and macOS `sips`.
# Brand fonts (Poppins/Inter) are read from the app repo's appshots fonts dir.

set -euo pipefail

cd "$(dirname "$0")"

SRC_DIR="${1:-$HOME/Desktop/WP}"
OUT_DIR=".."
FONT_PATH="${FONT_PATH:-$HOME/Cursor/Oliver/Oliver App/oliver-pos-app/iosApp/appshots/fonts}"

# Slot order is deliberate: register hero first, then order management,
# customers, checkout, multi-outlet stock, tips, KDS, shift close.
ORDER=(
  register-duo-mixed
  orders-duo
  customers-duo-mixed
  order-complete-trio-mixed
  inventory-transfer-trio-dark
  tip-tablet
  fulfilment-trio-mixed
  shift-summary-trio-dark
)

for i in "${!ORDER[@]}"; do
  n=$((i + 1))
  src="$SRC_DIR/${ORDER[$i]}.png"
  [[ -f "$src" ]] || { echo "missing composite: $src" >&2; exit 1; }
  echo "screenshot-$n.png  <-  ${ORDER[$i]}.png"
  typst compile --ppi 72 --root / --font-path "$FONT_PATH" \
    --input src="$src" screenshot.typ "$OUT_DIR/screenshot-$n.png"
done

echo "banner-1544x500.png  <-  register-duo-mixed.png"
typst compile --ppi 72 --root / --font-path "$FONT_PATH" \
  --input hero="$SRC_DIR/register-duo-mixed.png" banner.typ "$OUT_DIR/banner-1544x500.png"

echo "banner-772x250.png  (downscale)"
cp "$OUT_DIR/banner-1544x500.png" "$OUT_DIR/banner-772x250.png"
sips -z 250 772 "$OUT_DIR/banner-772x250.png" >/dev/null

echo "done."
