/** * 模板草稿 CRUD + 生成相关 API */ import apiClient from "../client" import type { EditPlan, UpdateEditPlanRequest, GenerateResponse, GenerationStatusResponse, EditPlanGeneration, GeneratedVideo, } from "./types" /** 获取单个模板草稿 */ export async function getEditPlan(templateId: string): Promise { const response = await apiClient.get(`/templates/${templateId}/editor`) return response.data } /** 更新模板草稿(支持传入 AbortSignal 用于自动保存竞态取消) */ export async function updateEditPlan( templateId: string, data: UpdateEditPlanRequest, signal?: AbortSignal, ): Promise { const response = await apiClient.put(`/templates/${templateId}/editor`, data, { signal }) return response.data } /** 触发生成 */ export async function generateEditPlan(templateId: string): Promise { const response = await apiClient.post(`/templates/${templateId}/editor/generate`) return response.data } /** 获取生成状态(轮询用) */ export async function getGenerationStatus(templateId: string): Promise { const response = await apiClient.get(`/templates/${templateId}/editor/generation-status`) return response.data } /** 获取模板草稿关联的生成记录 */ export async function getEditPlanGenerations(templateId: string): Promise { const response = await apiClient.get(`/templates/${templateId}/editor/generations`) return response.data.items || [] } /** 获取生成任务的视频结果列表 */ export async function getGenerationTaskResults(taskId: string): Promise { const response = await apiClient.get(`/generation/tasks/${taskId}/results`) return response.data.items || response.data || [] }