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

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

validate_release_params() {
  local client="$1"
  local env_name="$2"
  local mode="$3"

  case "$client" in
    BS)
      [[ "$env_name" == "SIT" || "$env_name" == "DEMO" ]] || die "CLIENT=BS supporta solo ENV=SIT|DEMO"
      [[ "$mode" == "SSH" ]] || die "CLIENT=BS supporta solo RELEASE_MODE=SSH"
      ;;
    VAR)
      [[ "$env_name" == "SIT" || "$env_name" == "UAT" || "$env_name" == "PRD" ]] || die "CLIENT=VAR supporta solo ENV=SIT|UAT|PRD"
      [[ "$mode" == "SSH" ]] || die "CLIENT=VAR supporta solo RELEASE_MODE=SSH"
      ;;
    IFIS)
      [[ "$env_name" == "UAT" || "$env_name" == "PRD" ]] || die "CLIENT=IFIS supporta solo ENV=UAT|PRD"
      [[ "$mode" == "ZIP" ]] || die "CLIENT=IFIS supporta solo RELEASE_MODE=ZIP"
      ;;
    SOFIM)
      [[ "$env_name" == "UAT" || "$env_name" == "PRD" ]] || die "CLIENT=SOFIM supporta solo ENV=UAT|PRD"
      [[ "$mode" == "SSH" ]] || die "CLIENT=SOFIM supporta solo RELEASE_MODE=SSH"
      ;;
    GARDANT)
      [[ "$env_name" == "UAT" || "$env_name" == "PRD" ]] || die "CLIENT=GARDANT supporta solo ENV=UAT|PRD"
      [[ "$mode" == "ZIP" ]] || die "CLIENT=GARDANT supporta solo RELEASE_MODE=ZIP"
      ;;
    DOVALUE)
      [[ "$env_name" == "PRD" ]] || die "CLIENT=DOVALUE supporta solo ENV=PRD"
      [[ "$mode" == "ZIP" ]] || die "CLIENT=DOVALUE supporta solo RELEASE_MODE=ZIP"
      ;;
    ALLITUDE)
      [[ "$env_name" == "UAT" || "$env_name" == "PRD" ]] || die "CLIENT=ALLITUDE supporta solo ENV=UAT|PRD"
      [[ "$mode" == "ZIP" ]] || die "CLIENT=ALLITUDE supporta solo RELEASE_MODE=ZIP"
      ;;
    *)
      die "CLIENT non supportato: $client"
      ;;
  esac
}
