package cn.fateverse.workflow.mapper;

import cn.fateverse.workflow.entity.FormPerm;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author Clay
 * @date 2022/12/24
 */
public interface FormPermMapper {

    /**
     * 批量添加流程表单数据
     *
     * @param list 表单列表
     * @return 结果
     */
    int batchInsert(List<FormPerm> list);

    /**
     * 通过FromKey查询当前task的表单权限
     *
     * @param fromKey      表单关键词
     * @param deploymentId 流程部署id
     * @return 查询结果
     */
    @MapKey("id")
    Map<String, FormPerm> selectListByFormKeyAndDeploymentId(@Param("fromKey") String fromKey,
                                                             @Param("deploymentId") String deploymentId);

    /**
     * 根据表单key的list查询到所有的权限
     *
     * @param fromKeys     表单关键词列表
     * @param deploymentId 流程部署id
     * @return 查询结果
     */
    List<FormPerm> selectListByFormKeyListAndDeploymentId(@Param("fromKeys") List<String> fromKeys,
                                                          @Param("deploymentId") String deploymentId);


}
