#!/usr/bin/env python3
"""
Startup script for RabbitMQ Sarvam API
"""

import subprocess
import sys
import os

def check_dependencies():
    """Check if required packages are installed"""
    required_packages = [
        'flask', 'requests', 'pymysql', 'python-dotenv', 
        'pika', 'boto3', 'urllib3', 'mysql-connector-python'
    ]
    
    missing_packages = []
    
    for package in required_packages:
        try:
            __import__(package.replace('-', '_'))
        except ImportError:
            missing_packages.append(package)
    
    if missing_packages:
        print("❌ Missing required packages:")
        for package in missing_packages:
            print(f"   - {package}")
        print("\n💡 Install missing packages with:")
        print("   python3 -m pip install -r requirements.txt")
        return False
    
    print("✅ All required packages are installed")
    return True

def start_api():
    """Start the Flask API server"""
    if not check_dependencies():
        sys.exit(1)
    
    print("🚀 Starting RabbitMQ Sarvam API Server...")
    print("📋 Available endpoints:")
    print("   GET  /health - Health check")
    print("   POST /queue-calls - Queue calls (JSON body)")
    print("   POST /queue-calls/<bid> - Queue calls (URL param)")
    print("   POST /process-calls - Process calls directly (JSON body)")
    print("   POST /process-calls/<bid> - Process calls directly (URL param)")
    print("   GET  /list-businesses - List all businesses")
    print("🌐 Server will start on http://localhost:5000")
    print("📖 API Documentation: API_DOCUMENTATION.md")
    print("=" * 60)
    
    try:
        # Start the Flask app
        from app import app
        app.run(debug=True, host='0.0.0.0', port=5000)
    except KeyboardInterrupt:
        print("\n👋 Server stopped by user")
    except Exception as e:
        print(f"❌ Error starting server: {e}")
        sys.exit(1)

if __name__ == "__main__":
    start_api()
