#!/bin/sh
set -e

# Arranque del contenedor: opcionalmente espera al health del backend, luego ejecuta CMD (pnpm dev / start, …)

wait_for_backend() {
  local url=$1
  local max_attempts=30
  local attempt=1

  echo "Esperando a que el backend esté disponible en ${url}..."

  while [ $attempt -le $max_attempts ]; do
    # NOTA: usar la URL tal cual la pasa el caller. Antes esta función agregaba
    # un "/health" extra al final (resultando en /api/health/health → 404), lo
    # que provocaba que el entrypoint esperara 30 intentos en vano antes de
    # arrancar Vite, sumando ~90 s muertos al arranque del frontend.
    if wget -q -O /dev/null "${url}" 2>/dev/null; then
      echo "✓ Backend está listo"
      return 0
    fi

    echo "Backend no está listo aún... (intento $attempt/$max_attempts)"
    attempt=$((attempt + 1))
    sleep 3
  done

  echo "⚠ WARNING: Backend no estuvo disponible, continuando de todas formas"
  return 0
}

# compose usa INTERNAL_API_URL; alias opcional BACKEND_INTERNAL_URL
_api_base="${INTERNAL_API_URL:-${BACKEND_INTERNAL_URL:-http://backend:8000/api}}"
_api_base="${_api_base%/}"
wait_for_backend "${_api_base}/health"

# En desarrollo (volumen montado) reinstala deps si cambia package.json
if [ "$NODE_ENV" = "development" ]; then
  echo "Instalando dependencias (development)..."
  CI=true pnpm install
fi

echo "Iniciando: $*"
exec "$@"
