#!/bin/bash

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

echo -e "${GREEN}🚀 Iniciando despliegue en AlmaLinux...${NC}"
echo "=========================================="

# Activar modo mantenimiento
echo -e "${YELLOW}🔒 Activando modo mantenimiento...${NC}"
php artisan down --message="Actualizando sistema" --retry=60 || true

# Pull de cambios Git (si aplica)
if [ -d .git ]; then
    echo -e "${YELLOW}📥 Obteniendo cambios de Git...${NC}"
    git pull origin dev
fi

# Composer
echo -e "${YELLOW}📦 Instalando dependencias PHP con Composer...${NC}"
/usr/local/bin/composer install --optimize-autoloader --no-dev --no-interaction

# Verificar si npm está disponible
if command -v npm &> /dev/null; then
    echo -e "${YELLOW}📦 Instalando dependencias Node...${NC}"
    npm ci --production
    
    echo -e "${YELLOW}🔨 Compilando assets...${NC}"
    npm run build
else
    echo -e "${RED}⚠️  NPM no encontrado, saltando compilación de assets${NC}"
fi

# Limpiar caches
echo -e "${YELLOW}🧹 Limpiando caches...${NC}"
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

# Migraciones (comentado por seguridad)
# echo -e "${YELLOW}🗃️  Ejecutando migraciones...${NC}"
# php artisan migrate --force

# Optimizar
echo -e "${YELLOW}⚡ Optimizando aplicación...${NC}"
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize

# Permisos (importante en Linux)
echo -e "${YELLOW}🔐 Ajustando permisos...${NC}"
sudo chown -R nginx:nginx storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache

# Reiniciar servicios si es necesario
# echo -e "${YELLOW}🔄 Reiniciando PHP-FPM...${NC}"
# sudo systemctl restart php-fpm

# Reiniciar queue workers si los usas
if pgrep -x "artisan" > /dev/null; then
    echo -e "${YELLOW}🔄 Reiniciando workers...${NC}"
    php artisan queue:restart
fi

# Desactivar modo mantenimiento
echo -e "${YELLOW}🔓 Desactivando modo mantenimiento...${NC}"
php artisan up

echo "=========================================="
echo -e "${GREEN}✅ Despliegue completado exitosamente!${NC}"
