#!/bin/sh

set -u

backend_url="${BACKEND_INTERNAL_URL%/}"
schedule_mode="${ALERT_MAIL_SCHEDULE_MODE:-test-5-min}"
raw_groups="${ALERT_MAIL_SCHEDULE_GROUPS:-cisp}"
overall_status=0

for group in $(printf "%s" "$raw_groups" | tr "," " "); do
  normalized_group=$(printf "%s" "$group" | tr "[:upper:]" "[:lower:]" | tr -d "[:space:]")

  case "$normalized_group" in
    direction|adm|cisp|logistique|atelier)
      ;;
    "")
      continue
      ;;
    *)
      echo "Groupe ignoré car invalide : $normalized_group" >&2
      overall_status=1
      continue
      ;;
  esac

  payload=$(printf \
    '{"groupe":"%s","mode":"%s"}' \
    "$normalized_group" \
    "$schedule_mode")

  echo "Déclenchement du mail planifié pour le groupe $normalized_group..."

  if ! curl \
    --silent \
    --show-error \
    --fail-with-body \
    --connect-timeout 10 \
    --max-time 45 \
    --retry 2 \
    --retry-connrefused \
    --request POST \
    --header "Content-Type: application/json" \
    --header "X-Cron-Secret: ${ALERT_MAIL_CRON_SECRET}" \
    --data "$payload" \
    "${backend_url}/api/internal/alertes-mails/test"
  then
    echo "Échec du déclenchement pour le groupe $normalized_group." >&2
    overall_status=1
  fi

  echo
done

exit "$overall_status"
