package com.persagy.dmp.define.client;

import cn.hutool.extra.spring.SpringUtil;
import com.persagy.dmp.basic.dto.DefineRequestData;
import com.persagy.dmp.basic.model.QueryCriteria;
import com.persagy.dmp.common.model.response.CommonResult;
import com.persagy.dmp.common.utils.ResultHelper;
import com.persagy.dmp.define.entity.DigitalEquipClassRel;

import java.util.List;

/***
 * Description: 项目对象类型关系Client门面
 * @author : lijie
 * @date :2021/9/14 23:10
 * Update By lijie 2021/9/14 23:10
 */
public class DigitalEquipClassRelFacade {

    private static DigitalEquipClassRelClient client = SpringUtil.getBean(DigitalEquipClassRelClient.class);

    /**
     * 查询项目对象类型关系
     * @param groupCode 集团编码
     * @param projectId 项目ID
     * @param appId 应用ID
     * @param userId 用户ID
     * @param criteria 查询条件
     * @return 项目对象类型关系
     */
    public static List<DigitalEquipClassRel> query(String groupCode, String projectId, String appId, String userId, QueryCriteria criteria) {
        CommonResult<List<DigitalEquipClassRel>> result = client.query(groupCode, projectId, appId, userId, criteria);
        return ResultHelper.getContent(result);
    }

    /**
     * 查询项目对象类型关系-原样返回结果
     * @param groupCode 集团编码
     * @param projectId 项目ID
     * @param appId 应用ID
     * @param userId 用户ID
     * @param criteria 查询条件
     * @return 项目对象类型关系对象集合
     */
    public static CommonResult<List<DigitalEquipClassRel>> queryPrototype(String groupCode, String projectId, String appId, String userId, QueryCriteria criteria) {
        return client.query(groupCode, projectId, appId, userId, criteria);
    }

    /**
     * 创建项目对象类型关系-批量新增
     * @param groupCode 集团编码
     * @param projectId 项目ID
     * @param appId 应用ID
     * @param userId 用户ID
     * @param voList 对象类型对象数组
     * @return 项目对象类型关系对象数组
     */
    public static List<DigitalEquipClassRel> createBatch(String groupCode, String projectId, String appId, String userId, List<DigitalEquipClassRel> voList) {
        CommonResult<List<DigitalEquipClassRel>> commonResult = client.createBatch(groupCode, projectId, appId, userId, voList);
        return commonResult.getData();
    }

    /**
     * 查询项目对象类型关系列表
     * @param groupCode 集团编码
     * @param projectId 项目ID
     * @param appId 应用ID
     * @param userId 用户ID
     * @param requestData 查询条件
     * @return 项目对象类型关系对象集合
     */
    public static CommonResult<List<DigitalEquipClassRel>> queryListByRelNames(String groupCode, String projectId,
                                                                               String appId, String userId,
                                                                               DefineRequestData requestData) {
        return client.queryListByRelNames(groupCode, projectId, appId, userId, requestData);
    }
}
