from enum import Enum


class GenerationMode(str, Enum):
    """生成模式。"""
    STANDARD = "standard"
    FAST = "fast"


class GenerationType(str, Enum):
    """生成类型。"""
    video = "video"
    image = "image"


class ChatGenerationTaskStatus(str, Enum):
    """聊天生成任务状态。"""
    pending = "pending"
    processing = "processing"
    completed = "completed"
    failed = "failed"


class ChatGenerationPipelineStage(str, Enum):
    """聊天生成任务阶段。"""
    waiting = "waiting"
    prompt_optimization = "prompt_optimization"
    video_generation = "video_generation"
    post_processing = "post_processing"
    completed = "completed"
    failed = "failed"


class ChatGenerationTaskEventType(str, Enum):
    """聊天生成任务事件类型。"""
    TASK_CREATED = "TASK_CREATED"
    TASK_DELETED = "TASK_DELETED"
    TASK_CANCELLED = "TASK_CANCELLED"
    PROMPT_OPT_STARTED = "PROMPT_OPT_STARTED"
    PROMPT_OPT_COMPLETED = "PROMPT_OPT_COMPLETED"
    PROMPT_OPT_FAILED = "PROMPT_OPT_FAILED"
    VIDEO_GEN_STARTED = "VIDEO_GEN_STARTED"
    VIDEO_GEN_COMPLETED = "VIDEO_GEN_COMPLETED"
    VIDEO_GEN_FAILED = "VIDEO_GEN_FAILED"
    POST_PROCESSING_STARTED = "POST_PROCESSING_STARTED"
    POST_PROCESSING_COMPLETED = "POST_PROCESSING_COMPLETED"
    POST_PROCESSING_FAILED = "POST_PROCESSING_FAILED"
    TASK_COMPLETED = "TASK_COMPLETED"
    TASK_FAILED = "TASK_FAILED"