from typing import Optional from datetime import datetime from pydantic import BaseModel from models.task import TaskStatus, TaskType class TaskResponse(BaseModel): """任务响应模型""" id: str task_type: TaskType software_id: str status: TaskStatus created_at: datetime started_at: Optional[datetime] = None completed_at: Optional[datetime] = None error_message: Optional[str] = None progress: int class SSEEvent(BaseModel): """SSE事件模型""" event_type: str task_id: Optional[str] = None software_id: Optional[str] = None data: dict