import os
import argparse
from dotenv import load_dotenv

# import eth_account
# from hyperliquid.utils import constants
# from hyperliquid.exchange import Exchange

def main():
    if os.getenv("CTB_ALLOW_LEGACY_TRADER", "").lower() != "true":
        print("Legacy Trader disabled; use src/tools/preflight.py and v76 executors")
        return 2
    parser = argparse.ArgumentParser(description="Hyperliquid Trade Executor")
    parser.add_argument("--coin", required=True, help="Der Coin-Ticker (z.B. BTC, WIF)")
    parser.add_argument("--action", required=True, choices=["long", "short", "close"], help="Die Richtung des Trades")
    parser.add_argument("--sz", type=float, required=True, help="Positionsgröße (Size)")
    # NEU: Parameter für Stop Loss und Take Profit
    parser.add_argument("--sl", type=float, default=0, help="Stop Loss in Prozent (z.B. 5 für -5%)")
    parser.add_argument("--tp", type=float, default=0, help="Take Profit in Prozent (z.B. 20 für +20%)")
    args = parser.parse_args()

    load_dotenv()
    public_key = os.getenv("HL_API_WALLET_ADDRESS")
    secret_key = os.getenv("HL_API_PRIVATE_KEY")

    if not public_key or not secret_key:
        print("❌ FEHLER: API-Keys fehlen in der .env Datei. Abbruch.")
        return

    print("--- HYPERLIQUID TRADER ---")
    print(f"🔒 Lokale Wallet verifiziert: {public_key[:6]}...{public_key[-4:]}")
    print(f"⚡ Befehl empfangen: [{args.action.upper()}] auf {args.coin} | Größe: {args.sz}")
    
    if args.sl > 0 or args.tp > 0:
        print(f"🛡️ Absicherung aktiv -> Stop Loss: -{args.sl}% | Take Profit: +{args.tp}%")

    # 3. HIER WÜRDE DER ECHTE TRADE PASSIEREN (Aktuell Simulation)
    """
    account = eth_account.Account.from_key(secret_key)
    exchange = Exchange(account, constants.MAINNET_API_URL)
    is_buy = True if args.action == "long" else False
    
    print(f"Sende Market-Order an Hyperliquid...")
    # result = exchange.market_open(args.coin, is_buy, args.sz, None, args.sl)
    """

    print("✅ STATUS: Order und Absicherung erfolgreich validiert (DRY-RUN MODUS).")

if __name__ == "__main__":
    raise SystemExit(main())
