#!/bin/bash
# deploy.sh - скрипт для автоматического деплоя на сервере
# Используется GitLab CI/CD или может быть вызван вручную

set -e

echo "🚀 Начинаем деплой..."

# Переходим в директорию проекта
cd "$(dirname "$0")/.." || exit 1

# Обновляем код
echo "📥 Получаем последние изменения из репозитория..."
git pull origin main

# Устанавливаем зависимости
echo "📦 Устанавливаем зависимости..."
npm install

# Генерируем Prisma Client
echo "🛠️ Генерируем Prisma Client..."
npm run db:generate

# Применяем изменения схемы БД
echo "🗄️ Применяем изменения схемы базы данных..."
npm run db:push

# Собираем приложение
echo "🔨 Собираем приложение..."
npm run build

# Перезапускаем приложение
echo "🔄 Перезапускаем приложение..."

# Проверяем PM2
if command -v pm2 &> /dev/null; then
  if pm2 list | grep -q "webecosystem\|bug-reports"; then
    echo "   Используем PM2..."
    pm2 restart webecosystem || pm2 restart bug-reports || pm2 restart all
    echo "✅ Приложение перезапущено через PM2"
    exit 0
  fi
fi

# Проверяем systemd
if systemctl is-active --quiet webecosystem.service 2>/dev/null; then
  echo "   Используем systemd..."
  sudo systemctl restart webecosystem.service
  echo "✅ Приложение перезапущено через systemd"
  exit 0
fi

# Проверяем docker-compose
if [ -f docker-compose.yml ]; then
  echo "   Используем docker-compose..."
  docker-compose restart app || docker-compose up -d --build
  echo "✅ Приложение перезапущено через docker-compose"
  exit 0
fi

# Если ничего не найдено, просто предупреждаем
echo "⚠️ Не удалось определить способ запуска приложения."
echo "   Перезапустите приложение вручную:"
echo "   - PM2: pm2 restart <app-name>"
echo "   - systemd: sudo systemctl restart webecosystem.service"
echo "   - docker-compose: docker-compose restart app"
echo "   - или просто: npm start"

echo "🎉 Деплой завершен!"

