package ink.wgink.module.activiti.service.oa;

import ink.wgink.module.activiti.pojo.dtos.oa.NodeButtonDTO;
import ink.wgink.module.activiti.pojo.vos.oa.nodemanage.config.NodeFormButtonVO;

/**
 * @ClassName: INodeButtonService
 * @Description: 节点按钮
 * @Author: wanggeng
 * @Date: 2022/4/27 11:38
 * @Version: 1.0
 */
public interface INodeButtonService {

    /**
     * 保存节点按钮
     *
     * @param modelId
     * @param modelVersion
     * @param nodeId
     * @param nodeIndex
     * @param formId
     * @param nodeButton
     */
    void save(String modelId, Integer modelVersion, String nodeId, int nodeIndex, String formId, NodeFormButtonVO nodeButton);

    /**
     * 更新节点按钮
     *
     * @param modelId
     * @param modelVersion
     * @param nodeId
     * @param nodeIndex
     * @param formId
     * @param nodeButton
     */
    void update(String modelId, Integer modelVersion, String nodeId, int nodeIndex, String formId, NodeFormButtonVO nodeButton);

    /**
     * 更新部署ID
     *
     * @param modelId
     * @param modelVersion
     * @param deploymentId
     */
    void updateDeploymentId(String modelId, Integer modelVersion, String deploymentId);

    /**
     * @param deploymentId
     * @param nodeId
     * @return
     */
    NodeButtonDTO getByDeploymentIdAndNodeId(String deploymentId, String nodeId);

}
