"""
=========================================
CV6 AI Trading OS
Broker Factory
=========================================
"""

from app.broker.angel_one import AngelOneBroker
from app.broker.aliceblue import AliceBlueBroker
from app.broker.upstox import UpstoxBroker
from app.broker.zerodha import ZerodhaBroker
from app.broker.mstock import MStockBroker
from app.broker.fyers import FyersBroker
from app.broker.dhan import DhanBroker
from app.broker.shoonya import ShoonyaBroker
from app.broker.exness import ExnessBroker
from app.broker.delta import DeltaBroker


class BrokerFactory:

    @staticmethod
    def get_broker(name: str):

        brokers = {

            "angelone": AngelOneBroker,

            "aliceblue": AliceBlueBroker,

            "upstox": UpstoxBroker,

            "zerodha": ZerodhaBroker,

            "mstock": MStockBroker,

            "fyers": FyersBroker,

            "dhan": DhanBroker,

            "shoonya": ShoonyaBroker,

            "exness": ExnessBroker,

            "delta": DeltaBroker,

        }

        broker = brokers.get(name.lower())

        if broker is None:
            raise Exception(f"Broker '{name}' not supported.")

        return broker()