#!/bin/sh
set -e

# Script de inicialización para el Frontend SvelteKit
# Espera a que el backend esté disponible antes de iniciar

echo "=========================================="
echo "Frontend SvelteKit - Inicialización"
echo "=========================================="

# Función para esperar al backend
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
    if wget -q -O /dev/null "${url}/health" 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
}

# Esperar al backend
# En Docker, usamos el nombre del servicio. En desarrollo local, VITE_API_URL apunta a localhost
BACKEND_HEALTH_URL="${BACKEND_INTERNAL_URL:-http://backend:8000/api}"
wait_for_backend "${BACKEND_HEALTH_URL}"

echo "=========================================="
echo "Iniciando aplicación SvelteKit..."
echo "=========================================="

# Instalar dependencias nuevas si package.json ha cambiado
if [ "$NODE_ENV" = "development" ]; then
    echo "Instalando dependencias (development mode)..."
    # CI=true evita el error ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY
    CI=true pnpm install
fi

# Ejecutar el comando que se pasó al contenedor
exec "$@"
