import datetime from pydantic import BaseModel, Field from ulid import ULID from typing import Dict, List from pretor.core.workflow.workflow import PretorWorkflow import asyncio class PretorEvent(BaseModel): event_id: str = Field(default_factory=lambda: str(ULID()), description="事件的唯一标识符") platform: str = Field(description="消息来源的平台") user_id: str = Field(description="用户id") user_name: str = Field(description="用户名") create_time: str = Field(default_factory=lambda: str(datetime.datetime.now(datetime.timezone.utc).isoformat()), description="事件创建时间") message: str = Field(description="用户发来的消息") attachment: Dict[str, str] | None = Field(default=None,description="附件") #-------------------------------------------------------------------------------------------------------------- workflow: PretorWorkflow | None = Field(default=None,description="工作流") pending_queue: asyncio.Queue[str] | None= Field(default=None,description="待处理队列") receive_queue: asyncio.Queue[str] | None = Field(default=None,description="待接收队列")