"""
CV6 AI Trading OS — Paper Trading Manager
Uses the module-level singleton from paper_engine so the router,
autonomous_engine, and manager all share the same in-memory state.
"""
from app.paper_trading.paper_engine import paper_engine as _engine


class PaperTradingManager:

    def __init__(self):
        self.engine = _engine

    def execute_trade(self, capital, symbol, action, quantity, entry_price,
                      stop_loss=None, target_price=None):
        return self.engine.execute_trade(
            capital=capital, symbol=symbol, action=action,
            quantity=quantity, entry_price=entry_price,
            stop_loss=stop_loss, target_price=target_price,
        )

    def account(self):
        return self.engine.account()

    def history(self):
        return self.engine.history()

    def cancel_position(self, symbol):
        return self.engine.cancel_position(symbol)

    def reset(self, capital=100_000.0):
        return self.engine.reset(capital)
