#!/usr/bin/env bash
# Passo 3 della pipeline asset (dopo apply-asset-map.mjs).
# Converte PNG fotografici in src/assets/img/ → JPG q83 e ridimensiona a ≤1400x1600px.
# I PNG partner-* (loghi con trasparenza) restano PNG.
# Tutti i JPG esistenti vengono ri-codificati a q83 con vincolo 1400x1600>
# (larghezza ≤1400 px E altezza ≤1600 px, aspect ratio preservato).
# Idempotente se abbinato a apply-asset-map.mjs (che ripristina i sorgenti originali).
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
IMG_DIR="$ROOT/src/assets/img"

cd "$IMG_DIR"

# --- PNG fotografici → JPG q83 + resize ≤1400x1600 ---
shopt -s nullglob
declare -A just_converted
converted=0
for png in *.png; do
  [[ "$png" == partner-* ]] && continue
  jpg="${png%.png}.jpg"
  convert "$png" -quality 83 -resize '1400x1600>' "$jpg"
  rm "$png"
  echo "  PNG→JPG: $png → $jpg"
  just_converted["$jpg"]=1
  (( converted++ )) || true
done

# --- Ri-codifica JPG esistenti a q83 + vincolo 1400x1600 ---
# Skip file appena convertiti (già a q83), elabora tutti gli altri.
reencoded=0
for jpg in *.jpg; do
  [[ -n "${just_converted[$jpg]+x}" ]] && continue
  mogrify -quality 83 -resize '1400x1600>' "$jpg"
  echo "  Ricodificato: $jpg"
  (( reencoded++ )) || true
done

echo "Ottimizzazione completata: ${converted} PNG→JPG, ${reencoded} JPG ricodificati (q83, ≤1400x1600)."
