import { StoryTemplateEntity } from "../domain/Entities"; import { getTemplateStoryList, actionTemplateStory } from "@/api/movie_start"; /** * 模板故事用例 * 负责管理故事模板的获取与操作 */ export class TemplateStoryUseCase { /** 故事模板列表 */ templateStoryList: StoryTemplateEntity[] = []; /** 当前选中的故事模板 */ selectedTemplate: StoryTemplateEntity | null = null; constructor() {} /** * 获取故事模板列表 * @returns {Promise} - 故事模板实体数组 */ async getTemplateStoryList(): Promise { try { const response = await getTemplateStoryList(); if (response.successful && response.data) { this.templateStoryList = response.data; return response.data; } throw new Error(response.message || '获取故事模板列表失败'); } catch (error) { console.error('获取故事模板列表失败:', error); throw error; } } /** * 执行故事模板相关操作 * @param {StoryTemplateEntity} template - 选中的故事模板 * @returns {Promise} - 项目id */ async actionStory(template: StoryTemplateEntity): Promise { try { if (!template) { throw new Error('故事模板不能为空'); } const response = await actionTemplateStory(template); if (response.successful && response.data) { this.selectedTemplate = template; return response.data.projectId; } throw new Error(response.message || '执行故事模板操作失败'); } catch (error) { console.error('执行故事模板操作失败:', error); throw error; } } }