"""
=========================================
CV6 AI Trading OS
Base Broker Interface
=========================================
"""

from abc import ABC, abstractmethod


class BaseBroker(ABC):

    @abstractmethod
    def connect(self):
        pass

    @abstractmethod
    def disconnect(self):
        pass

    @abstractmethod
    def profile(self):
        pass

    @abstractmethod
    def funds(self):
        pass

    @abstractmethod
    def holdings(self):
        pass

    @abstractmethod
    def positions(self):
        pass

    @abstractmethod
    def orders(self):
        pass

    @abstractmethod
    def place_order(self, order):
        pass

    @abstractmethod
    def modify_order(self, order_id, order):
        pass

    @abstractmethod
    def cancel_order(self, order_id):
        pass

    @abstractmethod
    def quotes(self, symbol):
        pass

    @abstractmethod
    def historical_data(self, symbol):
        pass

    @abstractmethod
    def live_data(self, symbol):
        pass