#!/usr/bin/env python3
"""
Ajoute manuellement la position qui n'a pas été sauvegardée à cause du deadlock
"""
from position_manager import get_position_manager
from datetime import datetime

# Données de la position depuis les logs
trade_hash = "0x658eb89d282942230efff0909815190586ccc3686d2ea550f1f25c110dd8fbd8"
tx_hash = "0x2acb765216574bd5b015d0cd4f4be9f0b5ae9c53bc41171b87ffc2e59f9f7974"
symbol = "BTCUSD_DEGEN"
pair_address = "0xD89aE81e55b1Bd46591CB5555209fdF8fFb43b76"
is_long = False  # SHORT
margin = 40.16
leverage = 225
entry_price = 107883.44
qty = margin * leverage / entry_price
stop_loss = 108883.44  # Approximatif (SHORT, donc SL au-dessus)
take_profit = 106883.44  # Approximatif (SHORT, donc TP en-dessous)

# Initialiser position manager
manager = get_position_manager(
    wallet_address='0x7476737C49d55bea691e54c2c96fD39a6bAf3049',
    storage_file='positions.json'
)

print("\n" + "="*80)
print("📝 AJOUT DE LA POSITION MANQUANTE")
print("="*80)
print(f"Trade Hash: {trade_hash}")
print(f"Symbol: {symbol}")
print(f"Side: SHORT")
print(f"Margin: ${margin:.2f}")
print(f"Leverage: {leverage}x")
print(f"Entry Price: ${entry_price:.2f}")
print()

try:
    # Ajouter la position
    position = manager.add_position(
        trade_hash=trade_hash,
        tx_hash=tx_hash,
        symbol=symbol,
        pair_address=pair_address,
        is_long=is_long,
        margin=margin,
        leverage=leverage,
        entry_price=entry_price,
        qty=qty,
        stop_loss=stop_loss,
        take_profit=take_profit,
        block_number=0  # On ne connaît pas le block exact
    )

    print("✅ Position ajoutée avec succès!")
    print()
    print(f"Total positions: {len(manager.positions)}")
    print(f"Positions ouvertes: {len(manager.get_open_positions())}")

except Exception as e:
    print(f"❌ Erreur: {e}")
    import traceback
    traceback.print_exc()

print("="*80)
