from enum import IntEnum
from typing import TypedDict, Any


class InputMessageType(IntEnum):
    """ 通道接受消息类型 """
    TASK_SUBMITTED = 0 # 任务提交
    TASK_CANCELLED = 1 # 任务取消
    INVOKE_ANSWER = 2 # 调用应答


class OutputMessageType(IntEnum):
    """ 通道发送消息类型 """
    TASK_ANSWER = 0 # 任务应答
    INVOKE = 1 # 调用
    EVENT = 2 # 事件


class InputMessage(TypedDict):
    """ 输入消息 """
    msg_type: InputMessageType # 消息类型
    payload: Any # 消息负载
    
    
class OutputMessage(TypedDict):
    """ 输出消息 """
    msg_type: OutputMessageType # 消息类型
    payload: Any # 消息负载


class InvokeResult(TypedDict):
    """ 调用应答 """
    task_id: str # 任务ID
    result: Any # 结果
