37 lines
848 B
Python
37 lines
848 B
Python
from datetime import datetime
|
|
from enum import Enum
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
# 定义任务状态枚举
|
|
class TaskStatus(Enum):
|
|
PENDING = "pending"
|
|
QUEUED = "queued"
|
|
PROCESSING = "processing"
|
|
COMPLETED = "completed"
|
|
FAILED = "failed"
|
|
|
|
|
|
# 定义任务模型
|
|
class Task(BaseModel):
|
|
task_id: str
|
|
audio_file_path: str
|
|
video_file_path: str
|
|
output_dir: str
|
|
output_file_path: str
|
|
description: str
|
|
status: TaskStatus
|
|
created_at: datetime
|
|
completed_at: Optional[datetime] = None
|
|
error_message: Optional[str] = None
|
|
machine_name: Optional[str] = None
|
|
callback_url: Optional[str] = None
|
|
|
|
|
|
# 定义任务创建请求模型
|
|
class TaskCreateRequest(BaseModel):
|
|
description: str
|
|
callback_url: Optional[str] = None
|