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

import net.northking.cctp.common.db.Pagination;
import net.northking.cctp.common.dto.AdvancedQueryOptions;
import net.northking.cctp.common.http.QueryByPage;
import net.northking.cctp.scriptcase.dto.component.*;

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

/**
 * 业务组件表_编辑Restful逻辑接口
 * @author maven-cctp-plugin
 * @since 1.0
 */
public interface MdBusComponentInfoApiService
{

  /**
   * 查询业务组件表_编辑列表
   *
   * @param queryByPage  查询条件
   * @return 查询结果列表
   */
  Pagination<MdBusComponentInfoDetailDto> pagingQuery(QueryByPage<MdBusComponentInfoQueryDto> queryByPage);

  /**
   * 更新业务组件表_编辑
   *
   * @param dto         接口数据传输对象
   * @return 修改的记录数量
   */
  Integer updateByPK(MdBusComponentInfoUpdateDto dto) throws IllegalAccessException;

  /**
   * 获取业务组件表_编辑
   * @param uuid 主键
   * @return 接口数据传输对象
   */
  MdBusComponentInfoDetailDto findByPK(String uuid);

  /**
   * 根据主键批量删除业务组件
   * @param ids
   * @return
   */
  int deleteByIds(List<String> ids);

  /**
   * 批量复制业务组件
   * @param target
   * @return
   */
  int copyById(MdBusComCopyDto target);

  /**
   * 批量选择业务组件进行入库
   * @param dto
   * @return
   */
  int busComListToLib(MdBusComCopyDto dto);

  int busComCancelShared(MdBusComCopyDto dto);

  int updateByBatch(MdBusComCopyDto dto);

    List<RecordComTreeDto> queryComInfoByIdList(List<String> busId);

  /**
   * 根据业务组件id集合查询组件名称
   * @param idList 业务组件id集合
   * @return 组件名称
   */
  Map<String, String> queryComNameByIdList(List<String> idList);

    AdvancedQueryOptions advancedQueryOptions(String projectId);
}
