package cn.fateverse.workflow.mapper;

import cn.fateverse.workflow.entity.ProcessListener;
import cn.fateverse.workflow.entity.query.ProcessListenerQuery;

import java.util.List;

/**
 * 系统内置监听器 Mapper
 *
 * @author clay
 * @date 2023-03-27
 */
public interface ProcessListenerMapper {

    /**
     * 查询系统内置监听器
     *
     * @param id 系统内置监听器Id
     * @return 系统内置监听器
     */
    ProcessListener selectById(String id);

    /**
     * 查询系统内置监听器列表
     *
     * @param query 系统内置监听器查询
     * @return 系统内置监听器集合
     */
    List<ProcessListener> selectList(ProcessListenerQuery query);

    /**
     * 通过ids 批量查询监听器信息
     *
     * @param idList 监听器id列表
     * @return 系统内置监听器集合
     */
    List<ProcessListener> selectIds(List<String> idList);

    /**
     * 新增系统内置监听器
     *
     * @param processListener 系统内置监听器
     * @return 结果
     */
    int insert(ProcessListener processListener);

    /**
     * 修改系统内置监听器
     *
     * @param processListener 系统内置监听器
     * @return 结果
     */
    int update(ProcessListener processListener);

    /**
     * 删除系统内置监听器
     *
     * @param id 需要删除的系统内置监听器Id
     * @return 结果
     */
    int deleteById(String id);

    /**
     * 批量删除系统内置监听器
     *
     * @param idList 需要删除的系统内置监听器Id 集合
     * @return 结果
     */
    int deleteBatchByIdList(List<String> idList);

}