package com.persagy.proxy.object.service;

import com.persagy.proxy.adm.request.AdmQueryCriteria;
import com.persagy.proxy.adm.request.AdmResponse;
import com.persagy.proxy.adm.service.IAdmBaseService;
import com.persagy.proxy.common.entity.InstanceUrlParam;
import com.persagy.proxy.object.model.AdmEquipment;

import java.util.List;

/**
 * ADM 设备接口
 * @author lvxy
 * @date 2021/8/18
 */
public interface IAdmEquipmentService extends IAdmBaseService<AdmEquipment> {

    /**
     * 新增
     * @param context
     * @param clazz
     * @param voList
     * @return
     */
    List<AdmEquipment> doInsertEuip(InstanceUrlParam context, Class<AdmEquipment> clazz, List<AdmEquipment> voList);

    /**
     * 修改 资产现在前端隐藏
     * @param context
     * @param clazz
     * @param voList
     * @return
     */
    @Deprecated
    List<AdmEquipment> doUpdateEuip(InstanceUrlParam context, Class<AdmEquipment> clazz, List<AdmEquipment> voList);

    /**
     * 删除 资产现在前端隐藏
     * @param context
     * @param voList
     * @return
     */
    @Deprecated
    void doDeleteEuip(InstanceUrlParam context, List<AdmEquipment> voList);

    /**
     * 补充设备类型属性
     * @param context
     * @param vos
     */
    void ensureSpecialValues(InstanceUrlParam context, List<AdmEquipment> vos);
    /***
     * Description: 将原来重写的doQuery方法改为该方法,用于使用钩子方法调整查询参数
     * @param admQueryCriteria : 请求参数
     * @return : com.persagy.proxy.adm.request.AdmResponse
     * @author : lijie
     * @date :2021/10/29 11:42
     * Update By lijie 2021/10/29 11:42
     */
    AdmResponse query(AdmQueryCriteria admQueryCriteria);

    /**
     * 查询对象设备类型
     * @param context
     * @param request
     * @param clazz
     * @return
     */
    AdmResponse queryEquipClassCode(InstanceUrlParam context,AdmQueryCriteria request,Class<AdmEquipment> clazz);

    /**
     * 关系计算处理
     * @param vos
     */
    void processRelationType(List<AdmEquipment> vos);
}
