"""
Démarrage du ProfitTaker en mode continu
"""

import sys
import os
sys.path.append('..')

from .profit_taker import ProfitTaker
from hyperliquid_client import HyperliquidClient
import time
import signal

# Fix encoding for Windows console
sys.stdout.reconfigure(encoding='utf-8')

def signal_handler(sig, frame):
    print('\nArret demande par utilisateur')
    global profit_taker
    if profit_taker:
        profit_taker.stop()
    sys.exit(0)

profit_taker = None

def main():
    global profit_taker

    print("=== DÉMARRAGE PROFIT TAKER ===")

    # Initialiser le client Hyperliquid
    try:
        hyperliquid_client = HyperliquidClient()
        print("Client Hyperliquid initialise")
    except Exception as e:
        print(f"Erreur client Hyperliquid: {e}")
        return

    # Initialiser le ProfitTaker
    profit_taker = ProfitTaker(hyperliquid_client=hyperliquid_client)
    print("ProfitTaker initialise")

    # Configuration du signal pour arrêt propre
    signal.signal(signal.SIGINT, signal_handler)

    print("\nDemarrage du monitoring...")
    print("Stop Loss configure a -12% du PnL")
    print("Verification toutes les 10 secondes")
    print("Ctrl+C pour arreter\n")

    # Démarrer le ProfitTaker
    profit_taker.start()

    try:
        # Maintenir le programme actif
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        signal_handler(None, None)

if __name__ == "__main__":
    main()