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.EpicScriptPageRequest;
import com.emotion.dto.request.EpicScriptUpdateRequest;
import com.emotion.dto.response.EpicScriptResponse;
import com.emotion.entity.EpicScript;

import java.util.List;

/**
 * 爽文剧本服务接口
 *
 * @author huazhongmin
 * @date 2025-12-22
 */
public interface EpicScriptService extends IService<EpicScript> {

    /**
     * 分页查询当前用户的剧本
     *
     * @param request 分页请求
     * @return 分页结果
     */
    PageResult<EpicScriptResponse> getPageByCurrentUser(EpicScriptPageRequest request);

    /**
     * 获取当前用户的所有剧本列表
     *
     * @return 剧本列表
     */
    List<EpicScriptResponse> getListByCurrentUser();

    /**
     * 根据ID获取剧本
     *
     * @param id 剧本ID
     * @return 剧本响应
     */
    EpicScriptResponse getScriptById(String id);

    /**
     * 创建剧本
     *
     * @param request 创建请求
     * @return 剧本响应
     */
    EpicScriptResponse createScript(EpicScriptCreateRequest request);

    /**
     * 更新剧本
     *
     * @param request 更新请求
     * @return 剧本响应
     */
    EpicScriptResponse updateScript(EpicScriptUpdateRequest request);

    /**
     * 选中剧本
     *
     * @param id 剧本ID
     * @return 剧本响应
     */
    EpicScriptResponse selectScript(String id);

    /**
     * 删除剧本
     *
     * @param id 剧本ID
     * @return 是否成功
     */
    boolean deleteScript(String id);
}
