package cn.fateverse.workflow.mapper;

import cn.fateverse.workflow.entity.ProcessData;
import cn.fateverse.workflow.entity.vo.ProcessDefinitionHistoryVo;

import java.util.List;

/**
 * @author Clay
 * @date 2022/12/23
 */
public interface ProcessDataMapper {

    /**
     * 插入流程的辅助数据
     *
     * @param data 流程实例附带的辅助数据
     * @return 变化值
     */
    int insert(ProcessData data);

    /**
     * 通过ke查询流程的历史版本数据
     *
     * @param processDefinitionKey 流程实例部署的key
     * @return 历史记录
     */
    List<ProcessDefinitionHistoryVo> selectByDeploymentKey(String processDefinitionKey);

    /**
     * 根据部署id获取到流程部署的表单数据
     *
     * @param processDefinitionId 流程实例部署id
     * @return 流程实例附带的数据
     */
    ProcessData selectByProcessDefinitionId(String processDefinitionId);

    /**
     * 根据
     *
     * @param processDefinitionKey 流程id
     * @return 流程数据
     */
    ProcessData selectByProcessDefinitionKey(String processDefinitionKey);

    /**
     * 根据部署id查询 部署的相关数据信息
     *
     * @param deploymentId 部署实例id
     * @return 流程实例附带的数据
     */
    ProcessData selectByDeploymentId(String deploymentId);

}
