#!/bin/bash

# Script para detener la aplicación en modo producción
# Este script debe ejecutarse en el servidor para detener todos los servicios

set -e

# Colores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

echo -e "${BLUE}🛑 Deteniendo aplicación en modo producción...${NC}"

# Verificar que estamos en el directorio correcto
if [ ! -f "docker-compose.yml" ]; then
    echo -e "${RED}❌ Error: No se encontró docker-compose.yml${NC}"
    echo -e "${YELLOW}Ejecuta este script desde la raíz del proyecto.${NC}"
    exit 1
fi

# Verificar que Docker está ejecutándose
if ! docker info >/dev/null 2>&1; then
    echo -e "${RED}❌ Error: Docker no está ejecutándose${NC}"
    echo -e "${YELLOW}No se pueden detener los contenedores sin Docker.${NC}"
    exit 1
fi

# Mostrar estado actual antes de detener
echo -e "${BLUE}📊 Estado actual de los servicios:${NC}"
docker-compose --profile prod ps 2>/dev/null || echo -e "${YELLOW}No hay servicios de producción ejecutándose.${NC}"

# Detener servicios de producción
echo -e "${YELLOW}⏹️  Deteniendo servicios de producción...${NC}"
if docker-compose --profile prod down --remove-orphans; then
    echo -e "${GREEN}✅ Servicios de producción detenidos exitosamente${NC}"
else
    echo -e "${YELLOW}⚠️  No había servicios de producción ejecutándose${NC}"
fi

# Detener cualquier contenedor huérfano
echo -e "${YELLOW}🧹 Limpiando contenedores huérfanos...${NC}"
docker-compose down --remove-orphans 2>/dev/null || true

# Verificar que todos los contenedores estén detenidos
echo -e "${BLUE}📊 Estado final de los servicios:${NC}"
docker-compose ps 2>/dev/null || echo -e "${GREEN}✅ Todos los contenedores están detenidos${NC}"

# Mostrar información sobre volúmenes (opcional)
echo -e "${BLUE}💾 Información de volúmenes:${NC}"
docker volume ls | grep -E "ai-learning-platform-|englishworldcenter-chatbot|ai_learning_platform" || echo -e "${YELLOW}No se encontraron volúmenes del proyecto${NC}"

echo -e "${GREEN}🎉 Aplicación detenida exitosamente!${NC}"
echo ""
echo -e "${BLUE}🔧 Comandos útiles:${NC}"
echo -e "  Ver todos los contenedores: docker ps -a"
echo -e "  Ver volúmenes: docker volume ls"
echo -e "  Limpiar volúmenes: docker volume prune"
echo -e "  Limpiar imágenes: docker image prune"
echo -e "  Reiniciar: ./start-production.sh"
echo ""
echo -e "${YELLOW}💡 Nota: Los datos de la base de datos se mantienen en los volúmenes de Docker${NC}"
