#!/bin/bash
# Скрипт для быстрой настройки на сервере после пуша изменений
# Выполнить: bash SERVER_SETUP.sh

set -e

echo "🚀 Настройка WebEcosystem на сервере..."

# Определяем директорию скрипта
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR" || exit 1

echo "📂 Рабочая директория: $(pwd)"

# 1. Проверка свободного порта
echo ""
echo "📋 Проверяем свободные порты..."
echo "⚠️  ВАЖНО: Порты 3000 и 3001 заняты важными процессами - НЕ ИСПОЛЬЗОВАТЬ!"
echo "Занятые порты:"
ss -tuln | grep LISTEN | grep -E ':(3001|3002|8080)' || echo "Порты 3001, 3002, 8080 свободны"

read -p "Введите порт для Next.js (рекомендуется 3002): " SELECTED_PORT

# Проверка, что не выбран занятый порт
if [ "$SELECTED_PORT" = "3000" ] || [ "$SELECTED_PORT" = "3001" ]; then
    echo "❌ ОШИБКА: Порты 3000 и 3001 заняты важными процессами!"
    echo "   Используйте порт 3002 или другой свободный порт."
    exit 1
fi

# 2. Обновление .env
echo ""
echo "📝 Обновление .env файла..."
if [ ! -f .env ]; then
    echo "⚠️  Файл .env не найден! Создайте его из env.example"
    echo "   cp env.example .env"
    echo "   nano .env"
    exit 1
fi

# Проверяем и обновляем NEXTAUTH_URL
if grep -q "NEXTAUTH_URL" .env; then
    sed -i "s|NEXTAUTH_URL=.*|NEXTAUTH_URL=\"https://banana.furtabas.com/webecosystem\"|" .env
    echo "✅ Обновлен NEXTAUTH_URL"
else
    echo "NEXTAUTH_URL=\"https://banana.furtabas.com/webecosystem\"" >> .env
    echo "✅ Добавлен NEXTAUTH_URL"
fi

# Проверяем и обновляем PORT
if grep -q "^PORT=" .env; then
    sed -i "s|^PORT=.*|PORT=$SELECTED_PORT|" .env
    echo "✅ Обновлен PORT=$SELECTED_PORT"
else
    echo "PORT=$SELECTED_PORT" >> .env
    echo "✅ Добавлен PORT=$SELECTED_PORT"
fi

# 3. Обновление ecosystem.config.js
echo ""
echo "📝 Обновление ecosystem.config.js..."
if [ -f ecosystem.config.js ]; then
    sed -i "s|PORT: [0-9]*|PORT: $SELECTED_PORT|" ecosystem.config.js
    echo "✅ Обновлен порт в ecosystem.config.js"
else
    echo "⚠️  Файл ecosystem.config.js не найден!"
fi

# 4. Пересборка приложения
echo ""
echo "🔨 Пересборка приложения..."
npm run build

# 5. Запуск через PM2
echo ""
echo "🚀 Запуск через PM2..."

if command -v pm2 &> /dev/null; then
    # Проверяем, запущено ли уже приложение
    if pm2 list | grep -q "webecosystem"; then
        echo "Перезапускаем существующий процесс..."
        pm2 restart ecosystem.config.js
    else
        echo "Запускаем новое приложение..."
        pm2 start ecosystem.config.js
        pm2 save
        echo ""
        echo "💡 Для автозапуска выполните: pm2 startup"
    fi
    
    echo ""
    echo "📊 Статус PM2:"
    pm2 status
else
    echo "⚠️  PM2 не установлен. Установите: npm install -g pm2"
fi

echo ""
echo "✅ Настройка завершена!"
echo ""
echo "📋 Следующие шаги:"
echo "1. Настройте nginx (добавьте location /webecosystem)"
echo "2. Проверьте доступность: https://banana.furtabas.com/webecosystem"
echo ""
echo "📖 Подробные инструкции в DEPLOYMENT_INSTRUCTIONS.md"

