"""
Socket.IO 事件定义
"""
# 认证事件
AUTH_EVENTS = [
    'auth',           # C→S: 认证请求
    'authenticated',  # S→C: 认证成功
    'auth_error',     # S→C: 认证失败
]

# 心跳事件
HEARTBEAT_EVENTS = [
    'ping',                # C→S: 心跳请求
    'pong',                # S→C: 心跳响应
    'heartbeat_timeout',   # S→C: 心跳超时
]

# 会话事件
SESSION_EVENTS = [
    'session.create',      # C→S: 创建会话
    'session.created',     # S→C: 会话已创建
    'session.join',        # C→S: 加入会话
    'session.joined',      # S→C: 已加入会话
    'session.leave',       # C→S: 离开会话
    'session.left',        # S→C: 已离开会话
    'session.closed',      # S→C: 会话被关闭
    'session.assigned',    # S→C: Agent 分配通知
]

# 消息事件
MESSAGE_EVENTS = [
    'message.send',        # C→S: 发送消息
    'message',             # S→C: 收到消息
    'message.ack',         # C→S: 消息确认
    'message.acked',       # S→C: 确认已收到
    'message.read',        # C→S: 消息已读
    'message.stream',      # S→C: 流式消息
    'typing',              # C→S: 正在输入
]

# 错误事件
ERROR_EVENTS = [
    'error',              # S→C: 通用错误
    'session_error',      # S→C: 会话错误
    'message_error',      # S→C: 消息错误
]

ALL_EVENTS = (
    AUTH_EVENTS +
    HEARTBEAT_EVENTS +
    SESSION_EVENTS +
    MESSAGE_EVENTS +
    ERROR_EVENTS
)
