#!/usr/bin/env bash
set -euo pipefail

ENV="${1:?ENV mancante (UAT|PRD)}"
BASE_PACKAGE_DIR="${2:?BASE_PACKAGE_DIR mancante}"
OUTPUT_ZIP="${3:?OUTPUT_ZIP mancante}"

source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/lib/common.sh"
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/lib/config_selection.sh"

case "$ENV" in
  PRD)
    SITE_FOLDERS=(
      "HYPO:chewebApp"
      "ALTOADIGE:chewebAppAltoAdige"
      "MCTAA:chewebAppMCTAA"
      "PRADER:chewebAppPrader"
      "RENON:chewebAppRenon"
      "SOLLBA:chewebAppSolBa"
    )
    ;;
  UAT)
    SITE_FOLDERS=(
      "HYPO:fctwebApp"
      "ALTOADIGE:fctwebAppAltoAdige"
      "MCTAA:fctwebAppMCTAA"
      "PRADER:fctwebAppPrader"
      "RENON:fctwebAppRenon"
      "SOLLBA:fctwebAppSolBa"
    )
    ;;
  *)
    die "ENV non supportato per ALLITUDE: $ENV"
    ;;
esac

WORKDIR="out/allitude_package"
rm -rf "$WORKDIR"
mkdir -p "$WORKDIR"

for site_folder in "${SITE_FOLDERS[@]}"; do
  site="${site_folder%%:*}"
  folder="${site_folder##*:}"

  target_dir="$WORKDIR/$folder"
  rsync -a "$BASE_PACKAGE_DIR/" "$target_dir/"

  config_path="$(resolve_config_file "ALLITUDE" "$ENV" "$site")"
  cp "$config_path" "$target_dir/com/conf/const.inc.php"

  cleanup_conf_files "$target_dir/com/conf"
done

mkdir -p "$(dirname "$OUTPUT_ZIP")"
rm -f "$OUTPUT_ZIP"
(
  cd "$WORKDIR"
  zip -r "$OUTPUT_ZIP" . >/dev/null
)

echo "Created ALLITUDE ZIP artifact: $OUTPUT_ZIP"
