package net.northking.cctp.scriptcase.api.scenescript.service;

import net.northking.cctp.common.db.Pagination;
import net.northking.cctp.common.dto.AdvancedQueryOptions;
import net.northking.cctp.common.http.QueryByPage;
import net.northking.cctp.scriptcase.dto.sceneScript.*;

import java.util.Map;

public interface AtuSceneScriptApiService {
    /**
     * 查询自动化场景列表列表
     *
     * @param queryByPage  查询条件
     * @return 查询结果列表
     */
    Pagination<AtuSceneInfoDetailDto> pagingQuery(QueryByPage<AtuSceneScriptQueryDto> queryByPage);

    /**
     * 新增自动化场景列表
     *
     * @param
     * @return 主键
     */
    String saveScript(AtuSaveSceneScriptDto saveSceneScriptDto) throws Exception;

    /**
     * 保存场景数据,同时生成用例
     * @param saveSceneScriptAndGenCaseDto
     * @return 场景详细信息
     */
    AtuSaveScriptAndCaseResVo saveScriptAndCase(AtuSaveSceneScriptAndGenCaseDto saveSceneScriptAndGenCaseDto) throws Exception;


    /**
     * 查询自动化场景详细信息
     * @param sceneId  主键
     * @return 场景详细信息
     */
    AtuSceneInfoDetailDto getScript(String sceneId);

    /**
     * 删除自动化场景列表
     * @param sceneId  主键
     * @return 删除的记录数量
     */
    Integer deleteScript(String sceneId);

    void saveSceneNodeInfoService(String sceneId, String projectId, String ScriptJson);

    Map<String,Object> queryScriptData(Map<String,Object> queryMap);

    AdvancedQueryOptions advancedQueryOptions(String projectId);
}
