from datetime import datetime from enum import Enum from typing import Optional from pydantic import BaseModel class TaskStatus(str, Enum): pending = 'pending' processing = 'processing' completed = 'completed' failed = 'failed' class TaskResponse(BaseModel): task_id: str status: TaskStatus created_at: datetime class TaskDetail(BaseModel): task_id: str status: TaskStatus created_at: datetime updated_at: datetime progress: Optional[float] = None result_url: Optional[str] = None error: Optional[str] = None class TaskListResponse(BaseModel): tasks: list[TaskDetail] total: int class ErrorResponse(BaseModel): error: str detail: Optional[str] = None status_code: int