package com.emotion.service; import com.baomidou.mybatisplus.extension.service.IService; import com.emotion.common.PageResult; import com.emotion.dto.request.EpicScriptCreateRequest; import com.emotion.dto.request.EpicScriptInspirationRequest; import com.emotion.dto.request.EpicScriptPageRequest; import com.emotion.dto.request.EpicScriptUpdateRequest; import com.emotion.dto.response.EpicScriptInspirationResponse; import com.emotion.dto.response.EpicScriptResponse; import com.emotion.dto.response.InspirationSuggestionResponse; import com.emotion.entity.EpicScript; import java.util.List; /** * 爽文剧本服务接口 * * @author huazhongmin * @date 2025-12-22 */ public interface EpicScriptService extends IService { /** * 分页查询当前用户的剧本 * * @param request 分页请求 * @return 分页结果 */ PageResult getPageByCurrentUser(EpicScriptPageRequest request); /** * 获取当前用户的所有剧本列表 * * @return 剧本列表 */ List getListByCurrentUser(); /** * 根据ID获取剧本 * * @param id 剧本ID * @return 剧本响应 */ EpicScriptResponse getScriptById(String id); /** * 创建剧本 * * @param request 创建请求 * @return 剧本响应 */ EpicScriptResponse createScript(EpicScriptCreateRequest request); List getInspirationRecommendations(); List getRandomInspirations(Integer size); EpicScriptInspirationResponse generateFromInspiration(EpicScriptInspirationRequest request); /** * 更新剧本 * * @param request 更新请求 * @return 剧本响应 */ EpicScriptResponse updateScript(EpicScriptUpdateRequest request); /** * 选中剧本 * * @param id 剧本ID * @return 剧本响应 */ EpicScriptResponse selectScript(String id); /** * 切换剧本当前生效版本 * * @param scriptId 剧本ID * @param messageId 消息ID * @return 剧本响应 */ EpicScriptResponse switchVersion(String scriptId, String messageId); /** * 删除剧本 * * @param id 剧本ID * @return 是否成功 */ boolean deleteScript(String id); }