/** * 任务相关 API * 对接后端方案 A 扩展后的端点(PR #109) * - POST /api/v1/generation/tasks — 创建生成任务(template_id + asset_ids 细粒度模式) * - GET /api/v1/tasks — 用户级任务列表(跨 project) * - POST /api/v1/tasks/{task_id}/retry — 简化重试 */ import apiClient from './client'; /* ──────────── 类型定义 ──────────── */ /** 任务条目 */ export interface TaskItem { id: string; task_type: 'ingest' | 'generation' | string; status: string; progress: number; current_step: string; error_message: string; user_message: string; retryable: boolean; source_id: string; created_at?: string | null; updated_at?: string | null; } /** 创建生成任务请求参数 */ export interface CreateGenerationTaskRequest { template_id: string; asset_ids: string[]; title_ids: string[]; voice_ids: string[]; } /** 创建生成任务响应 */ export interface CreateGenerationTaskResponse { task_id: string; status: string; message: string; } /* ──────────── API 函数 ──────────── */ /** 创建生成任务(一键生成) */ export const createGenerationTask = async ( params: CreateGenerationTaskRequest, ): Promise => { const { data } = await apiClient.post( '/generation/tasks', params, ); return data; }; /** 获取当前用户的所有任务(跨 project) */ export const getUserTasks = async (): Promise => { const { data } = await apiClient.get('/tasks'); return data.items || []; }; /** 重试失败的任务 */ export const retryTask = async (taskId: string): Promise => { const { data } = await apiClient.post(`/tasks/${taskId}/retry`); return data; };