#!/bin/bash

# Скрипт для перезапуска календарного сервиса после внесения изменений

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

# Переход в директорию проекта
cd "$(dirname "$0")" || { echo -e "${RED}Не удалось перейти в директорию проекта${NC}"; exit 1; }

# Активация виртуального окружения
if [ -d "venv" ]; then
    echo -e "${YELLOW}Активация виртуального окружения...${NC}"
    source venv/bin/activate
fi

# Установка переменной PYTHONPATH
export PYTHONPATH="${PWD}:${PYTHONPATH}"

# Остановка текущего экземпляра сервиса
echo -e "${YELLOW}Остановка календарного сервиса...${NC}"
pid=$(lsof -t -i:8004 2>/dev/null)
if [ -n "$pid" ]; then
    kill $pid
    sleep 2
fi

# Перезапуск сервиса
echo -e "${GREEN}Перезапуск календарного сервиса на порту 8004...${NC}"
python -m uvicorn services.calendar_service.main:app --host 0.0.0.0 --port 8004 &

echo -e "${GREEN}✅ Календарный сервис перезапущен${NC}"
echo -e "${YELLOW}Подождите несколько секунд для инициализации...${NC}"
sleep 3

# Проверка работоспособности
echo -e "${YELLOW}Проверка работоспособности...${NC}"
if curl -s http://localhost:8004/health > /dev/null; then
    echo -e "${GREEN}✅ Календарный сервис успешно запущен${NC}"
else
    echo -e "${RED}❌ Проблемы с запуском календарного сервиса${NC}"
fi

echo -e "${YELLOW}Сохраняем PID для дальнейшего использования...${NC}"
lsof -t -i:8004 > /tmp/calendar_service.pid