#!/usr/bin/env python3
"""
Скрипт для запуска проекта в продакшн режиме
"""

import subprocess
import sys

def run_command(command, description):
    """Выполнение команды с выводом"""
    print(f"🔄 {description}...")
    try:
        result = subprocess.run(command, shell=True, check=True, capture_output=True, text=True)
        print(f"✅ {description} выполнено успешно")
        return True
    except subprocess.CalledProcessError as e:
        print(f"❌ Ошибка при {description.lower()}:")
        print(f"   Команда: {command}")
        print(f"   Ошибка: {e.stderr}")
        return False

def main():
    print("🚀 Запуск проекта в продакшн режиме")
    print("=" * 50)
    
    # Останавливаем контейнеры разработки если они запущены
    if run_command("docker compose -f docker-compose.dev.yml ps", "Проверка статуса контейнеров разработки"):
        if "Up" in subprocess.run("docker compose -f docker-compose.dev.yml ps", shell=True, capture_output=True, text=True).stdout:
            print("🛑 Останавливаю контейнеры разработки...")
            run_command("docker compose -f docker-compose.dev.yml down", "Остановка контейнеров разработки")
    
    # Запускаем продакшн режим
    print("\n🏭 Запуск продакшн режима...")
    if run_command("docker compose up -d --build", "Запуск продакшн контейнеров"):
        print("\n🎉 Проект запущен в продакшн режиме!")
        print("\n📍 Доступные сервисы:")
        print("   • Streamlit: http://localhost:8501")
        print("   • FastAPI: http://localhost:8000")
        print("   • MinIO Console: http://localhost:9001")
        print("\n💡 Для разработки используйте:")
        print("   python start_dev.py")
        print("\n🛑 Для остановки используйте:")
        print("   docker compose down")
    else:
        print("\n❌ Не удалось запустить проект в продакшн режиме")
        sys.exit(1)

if __name__ == "__main__":
    main() 