#!/bin/bash

echo "========================================================"
echo "  LIMPIEZA DE RECURSOS HUÉRFANOS DE DOCKER"
echo "  (Se conservan contenedores detenidos y sus datos)"
echo "========================================================"
echo ""

# 1. Eliminar imágenes "dangling" (colgantes)
# Estas son capas de imágenes que no tienen nombre (tag <none>)
# y no son usadas por ningún contenedor (ni encendido ni apagado).
echo "[1/4] Eliminando imágenes huérfanas (dangling)..."
docker image prune --force

# 2. Eliminar redes no usadas
# Borra redes que no están conectadas a NINGÚN contenedor.
echo ""
echo "[2/4] Eliminando redes no utilizadas..."
docker network prune --force

# 3. Eliminar volúmenes no usados (Opcional - seguro si está huérfano)
# Solo borra volúmenes que no están montados en ningún contenedor.
# Si un contenedor detenido usa un volumen, este NO se borrará.
echo ""
echo "[3/4] Eliminando volúmenes huérfanos..."
docker volume prune --force

# 3b. Eliminar volumen de node_modules del frontend-dev (evita error esbuild Host/binary version)
# Ejecutar "docker compose --profile dev down" antes para que el volumen no esté en uso.
NODE_MODULES_VOLUMES=(
  "ai_learning_platform_EWC-frontend-dev-node-modules"
  "englishworldcenter-chatbot_frontend-dev-node-modules"
  "englishworldcenter-chatbot-frontend-dev-node-modules"
)

for vol in "${NODE_MODULES_VOLUMES[@]}"; do
  if docker volume inspect "$vol" >/dev/null 2>&1; then
    echo "      Eliminando volumen frontend-dev node_modules ($vol) (para evitar conflicto esbuild)..."
    docker volume rm "$vol" 2>/dev/null || true
  fi
done

# 4. Eliminar caché de construcción
# Libera espacio de compilaciones anteriores.
echo ""
echo "[4/4] Limpiando cache del builder..."
docker builder prune --force

echo ""
echo "========================================================"
echo "  LIMPIEZA COMPLETADA"
echo "========================================================"
read -p "Presiona Enter para salir..."
