"""
Script pour vérifier les leverages maximum disponibles sur ApolloX
pour chaque paire de trading
"""

import logging
from apollo_client import ApolloDegenClient

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

logger.info("🔍 VÉRIFICATION DES LEVERAGES MAXIMUM SUR APOLLOX\n")
logger.info("="*80)

# Créer client (mode public pour récupérer infos)
client = ApolloDegenClient()

# Paires principales à vérifier
pairs = [
    'BTCUSDT',
    'ETHUSDT',
    'SOLUSDT',
    'BNBUSDT',
    'ADAUSDT',
    'DOGEUSDT',
    'XRPUSDT',
    'MATICUSDT',
    'DOTUSDT',
    'AVAXUSDT'
]

logger.info("Récupération des informations de leverage...\n")

try:
    # Récupérer exchange info
    exchange_info = client.client.exchange_info()

    symbols_info = {}
    for symbol_info in exchange_info['symbols']:
        symbol = symbol_info['symbol']
        if symbol in pairs:
            symbols_info[symbol] = symbol_info

    # Afficher résultats
    logger.info(f"{'Paire':<15} {'Status':<10} {'Max Leverage':<15} {'Min Qty':<15}")
    logger.info("-"*80)

    for pair in pairs:
        if pair in symbols_info:
            info = symbols_info[pair]
            status = info.get('status', 'UNKNOWN')

            # Trouver leverage max (peut être dans filters ou autre champ)
            max_leverage = "N/A"

            # Chercher dans les filters
            for filter_item in info.get('filters', []):
                if filter_item['filterType'] == 'MARKET_LOT_SIZE':
                    min_qty = filter_item.get('minQty', 'N/A')
                elif filter_item['filterType'] == 'PRICE_FILTER':
                    tick_size = filter_item.get('tickSize', 'N/A')

            logger.info(f"{pair:<15} {status:<10} {'Check API':<15} {min_qty if 'min_qty' in locals() else 'N/A':<15}")
        else:
            logger.info(f"{pair:<15} {'NOT FOUND':<10} {'N/A':<15} {'N/A':<15}")

    logger.info("\n" + "="*80)
    logger.info("ℹ️  NOTE: ApolloX Leverage par mode:")
    logger.info("   V1 Order Book:  100x maximum")
    logger.info("   V2 Classic:     250x maximum ✅ (Utilisé par V10)")
    logger.info("   V2 Degen Mode:  1001x maximum (Ultra risqué)")
    logger.info("="*80)

    logger.info("\n💡 RECOMMANDATION:")
    logger.info("   Pour vérifier le leverage exact d'une paire:")
    logger.info("   1. Se connecter avec API keys")
    logger.info("   2. Appeler client.get_leverage_bracket(symbol='BTCUSDT')")
    logger.info("   3. Vérifier 'maxLeverage' dans la réponse")

except Exception as e:
    logger.error(f"❌ Erreur lors de la récupération: {e}")
    logger.info("\n⚠️  Client en mode public - connexion limitée")
    logger.info("   Pour accès complet, configurez vos clés API dans config.py")

logger.info("\n")
