/*
 * Copyright (c) 京北方信息技术股份有限公司 Corporation 2021 . All rights reserved.
 *
 */
package net.northking.cctp.flowable.api.sm.service;

import net.northking.cctp.common.db.Pagination;
import net.northking.cctp.common.http.QueryByPage;
import net.northking.cctp.flowable.dto.sm.StateProcessDefDto;
import net.northking.cctp.flowable.dto.sm.StateProcessDefQueryDto;

import java.util.List;

/**
 * 状态流程定义资源服务接口
 *
 * @author : xiusong.xie
 * @version : 1.0
 */
public interface StateProcessActHisApiService
{
  /**
   * 新增状态流程定义
   *
   * @param dto 接口数据传输对象
   * @return 主键
   */
  String add(StateProcessDefDto dto);

  /**
   * 查询状态流程定义列表
   *
   * @param queryByPage 查询条件
   * @return 查询结果列表
   */
  Pagination<StateProcessDefDto> pagingQuery(QueryByPage<StateProcessDefQueryDto> queryByPage);

  /**
   * 更新状态流程定义
   *
   * @param dto 接口数据传输对象
   * @return 修改的记录数量
   */
  Integer updateByPK(StateProcessDefDto dto) throws IllegalAccessException;

  /**
   * 获取状态流程定义
   *
   * @param uuid 主键
   * @return 接口数据传输对象
   */
  StateProcessDefDto findByPK(String uuid);

  /**
   * 删除状态流程定义
   *
   * @param uuid 主键
   * @return 删除的记录数量
   */
  Integer deleteByPK(String uuid);

  /**
   * 批量删除
   *
   * @param batch 集合
   * @return 成功的数量
   */
  Integer deleteBatch(List<Object> batch);
}
