#!/bin/bash

# Скрипт для перезапуска уже настроенного приложения
# Использование: ./run.sh

set -e

# Цвета для вывода
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"

# Проверка наличия .env файла
if [ ! -f ".env" ]; then
    echo -e "${RED}❌ Файл .env не найден!${NC}"
    echo "   Создайте файл .env на основе env.example"
    exit 1
fi

# Загружаем переменные окружения
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)

# Значения по умолчанию
DB_USER=${DB_USER:-playeng}
DB_PASSWORD=${DB_PASSWORD:-playeng}
DB_NAME=${DB_NAME:-playeng}
DB_PORT=${DB_PORT:-5432}
PORT=${PORT:-8080}
WEB_PORT=${WEB_PORT:-3001}

echo -e "${GREEN}🔄 Перезапуск Play Life...${NC}"
echo ""

# Проверяем, запущены ли контейнеры
if docker-compose ps | grep -q "Up"; then
    echo -e "${YELLOW}Перезапуск существующих контейнеров...${NC}"
    echo "   - Backend сервер (с пересборкой)"
    echo "   - Frontend приложение (с пересборкой)"
    echo "   - База данных"
    # Пересобираем и перезапускаем веб-сервер с новыми изменениями
    echo -e "${BLUE}Пересборка веб-приложения...${NC}"
    docker-compose build play-life-web
    docker-compose up -d play-life-web
    # Пересобираем и перезапускаем бэкенд с новыми изменениями
    echo -e "${BLUE}Пересборка бэкенда...${NC}"
    docker-compose build backend
    docker-compose up -d --force-recreate backend
    # Перезапускаем базу данных
    docker-compose restart db
    echo -e "${GREEN}✅ Контейнеры перезапущены${NC}"
else
    echo -e "${YELLOW}Запуск контейнеров...${NC}"
    echo "   - База данных PostgreSQL 15 (порт: $DB_PORT)"
    echo "   - Backend сервер (порт: $PORT)"
    echo "   - Frontend приложение (порт: $WEB_PORT)"
    docker-compose up -d --build
    echo -e "${GREEN}✅ Контейнеры запущены${NC}"
fi

echo ""
echo -e "${BLUE}📋 Статус сервисов:${NC}"
docker-compose ps

echo ""
echo -e "${GREEN}✅ Готово!${NC}"
echo ""
echo -e "${BLUE}ℹ️  Используются креденшелы из .env:${NC}"
echo "   - DB_USER: $DB_USER"
echo "   - DB_NAME: $DB_NAME"
echo "   - DB_PORT: $DB_PORT (внешний порт)"
echo "   - Внутри Docker-сети: DB_HOST=db, DB_PORT=5432"

