/**
 * 任务管理 API
 * ============
 *
 * 提供任务列表查询接口。
 * 任务状态以后端 Redis 为唯一真相源，前端不持久化。
 */

import { client } from '../client';

interface TaskCreateResult {
  taskId: string;
  status: string;
  message: string;
}

interface TaskStatusResult {
  taskId: string;
  type: string | null;
  status: string;
  progress: number;
  message: string;
  completed: number;
  total: number;
  result?: unknown;
  error?: string;
  createdAt: string;
}

/**
 * 创建异步任务
 * @param taskType 任务类型: script / video / subtitle
 * @param params 任务参数
 */
export async function createTask(
  taskType: string,
  params: Record<string, unknown>,
): Promise<TaskCreateResult> {
  return client.post<TaskCreateResult>(`/tasks/${taskType}`, { params });
}

/**
 * 查询任务状态（前端轮询用）
 * @param taskId 任务ID
 */
export async function getTaskStatus(taskId: string): Promise<TaskStatusResult> {
  return client.get<TaskStatusResult>(`/tasks/${taskId}`);
}
