
#!/bin/bash

# Скрипт для обновления приложения
# Использование:
#   ./update.sh           - просто перезапуск (без пересборки)
#   ./update.sh --rebuild - пересборка с кешем и перезапуск (5-10 минут)

set -e

REBUILD=false

# Парсинг аргументов
while [[ $# -gt 0 ]]; do
    case $1 in
        --rebuild|-r)
            REBUILD=true
            shift
            ;;
        --help|-h)
            echo "Использование: $0 [--rebuild] [--help]"
            echo ""
            echo "Опции:"
            echo "  --rebuild, -r  Пересобрать образ перед перезапуском"
            echo "  --help, -h     Показать эту справку"
            echo ""
            echo "Примеры:"
            echo "  $0                # Просто перезапустить (быстро)"
            echo "  $0 --rebuild      # Пересобрать и перезапустить"
            echo ""
            echo "Когда использовать --rebuild:"
            echo "  - Изменился код приложения"
            echo "  - Обновились зависимости (package.json)"
            echo "  - Изменилась конфигурация Next.js"
            echo ""
            echo "Когда НЕ нужен --rebuild:"
            echo "  - Изменились только переменные в .env"
            echo "  - Нужно применить миграции базы данных"
            exit 0
            ;;
        *)
            echo "❌ Неизвестный параметр: $1"
            echo "Используйте --help для справки"
            exit 1
            ;;
    esac
done

echo "🔄 Обновление Global-IT24..."

if [ "$REBUILD" = true ]; then
    echo "🔨 Пересборка образа с использованием кеша (5-10 минут)..."
    export DOCKER_BUILDKIT=1
    export COMPOSE_DOCKER_CLI_BUILD=1
    
    # Остановка контейнера
    docker compose down
    
    # Пересборка
    docker compose build
    
    # Запуск
    docker compose up -d
else
    echo "🔄 Перезапуск контейнера без пересборки..."
    docker compose restart
fi

echo "⏳ Ожидание готовности..."
sleep 5

if docker compose ps | grep -q "Up"; then
    echo "✅ Обновление завершено!"
    docker compose ps
    echo ""
    echo "📝 Полезные команды:"
    echo "   Просмотр логов:     ./logs.sh"
    echo "   Статус:             ./status.sh"
    echo "   С пересборкой:      ./update.sh --rebuild"
else
    echo "❌ Ошибка при перезапуске!"
    docker compose logs --tail=50
    exit 1
fi
