#!/bin/bash

# Запуск API Gateway для мобильного приложения Women Safety

echo -e "\033[1;34m🚀 Запуск API Gateway для мобильного приложения на порту 8000...\033[0m"

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

# Активация виртуального окружения
echo -e "\033[1;33m🔄 Активация виртуального окружения...\033[0m"
source venv/bin/activate

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

# Проверка внешнего IP для доступа из эмулятора Android
EXTERNAL_IP=$(hostname -I | awk '{print $1}')
echo -e "\033[1;33m📱 IP-адрес для доступа из эмулятора Android: ${EXTERNAL_IP}:8000\033[0m"

# Создание Python-скрипта для миграции базы данных
echo -e "\033[1;33m🔄 Создание временного скрипта для миграции базы данных...\033[0m"
cat > migrate_db.py << 'EOL'
import asyncio
import sys

async def run_migrations():
    from shared.database import init_db
    print("🔄 Выполнение миграций базы данных...")
    await init_db()
    print("✅ Миграции успешно выполнены!")

if __name__ == "__main__":
    asyncio.run(run_migrations())
EOL

# Запуск миграции базы данных
echo -e "\033[1;33m🔄 Запуск миграции базы данных...\033[0m"
python migrate_db.py
MIGRATION_STATUS=$?

if [ $MIGRATION_STATUS -ne 0 ]; then
    echo -e "\033[1;31m❌ Ошибка при миграции базы данных. Проверьте логи.\033[0m"
    exit 1
fi

echo -e "\033[1;32m✅ База данных успешно мигрирована.\033[0m"

# Запуск API Gateway
echo -e "\033[1;32m✅ Запуск API Gateway для мобильного приложения...\033[0m"
cd services/api_gateway || { echo "Не удалось перейти в директорию API Gateway"; exit 1; }
python -m uvicorn main:app --host 0.0.0.0 --port 8000 --log-level debug