from enum import Enum


class OpCode(int, Enum):
    DISPATCH = 0
    HEARTBEAT = 1
    IDENTIFY = 2
    PRESENCE_UPDATE = 3
    VOICE_STATE_UPDATE = 4
    RESUME = 6
    RECONNECT = 7
    REQUEST_GUILD_MEMBERS = 8
    INVALID_SESSION = 9
    HELLO = 10
    HEARTBEAT_ACK = 11
    REQUEST_SOUNDBOARD_SOUNDS = 31


class MessageComponentType(str, Enum):
    ACTION_ROW = 1
    BUTTON = 2
    STRING_SELECT = 3
    TEXT_INPUT = 4
    USER_SELECT = 5
    ROLE_SELECT = 6
    MENTIONNABLE_SELECT = 7
    CHANNEL_SELECT = 8
    MODAL = 9


class EventTitle(str, Enum):
    INTERACTION_CREATE = "INTERACTION_CREATE"
    MESSAGE_CREATE = "MESSAGE_CREATE"
    GUILD_CREATE = "GUILD_CREATE"
    READY = "READY"


class InteractionType(int, Enum):
    PING = 1
    APPLICATION_COMMAND = 2
    MESSAGE_COMPONENT = 3
    APPLICATION_COMMAND_AUTOCOMPLETE = 4
    MODAL_SUBMIT = 5