from enum import IntEnum

from messagebus import TokenCreator, TokenPriority


MSGGRP_SLCTRL_ORDERMGR = "A"


def _create_order_token(number):
    return TokenCreator.create_token(
        priority=TokenPriority.low,
        message_group=MSGGRP_SLCTRL_ORDERMGR,
        number=number,
    )


# noinspection SpellCheckingInspection
class OrderApiTokens(IntEnum):

    TK_SLCTRL_OMGR_CHANGEMODIFIER = _create_order_token("13")
    TK_SLCTRL_OMGR_CHANGEQTY = _create_order_token("E")
    TK_SLCTRL_OMGR_CLEAROPTION = _create_order_token("7")
    TK_SLCTRL_OMGR_DOOPTION = _create_order_token("A")
    TK_SLCTRL_OMGR_DOSALE = _create_order_token("1")
    TK_SLCTRL_OMGR_DOTENDER = _create_order_token("10")
    TK_SLCTRL_OMGR_ORDERPICT = _create_order_token("2")
    TK_SLCTRL_OMGR_CREATEORDER = _create_order_token("18")
    TK_SLCTRL_OMGR_LISTORDERS = _create_order_token("D")
    TK_SLCTRL_OMGR_ORDERREOPEN = _create_order_token("F")
    TK_SLCTRL_OMGR_ORDERTOTAL = _create_order_token("6")
    TK_SLCTRL_OMGR_PULLORDERS = _create_order_token("35")
    TK_SLCTRL_OMGR_RECALLORDER = _create_order_token("C")
    TK_SLCTRL_OMGR_STOREORDER = _create_order_token("B")
    TK_SLCTRL_OMGR_VOIDLINE = _create_order_token("3")
    TK_SLCTRL_OMGR_VOIDORDER = _create_order_token("4")
    TK_SLCTRL_OMGR_SETCUSTOMPROPERTIES = _create_order_token(number="28")
    TK_SLCTRL_OMGR_GET_CONFIG = _create_order_token("34")
