package com.persagy.proxy.dictionary.service;

import com.persagy.dmp.basic.model.QueryCriteria;
import com.persagy.proxy.adm.request.AdmQueryCriteria;
import com.persagy.proxy.adm.request.AdmResponse;
import com.persagy.proxy.common.entity.InstanceUrlParam;

import java.util.List;

/**
 * @ClassName IAdmDictService
 * @Description: 字典查询
 * @Author linhuili
 * @Date 2021/8/31 14:30
 * @Version V1.0
 **/
public interface IAdmDictBaseService<T>{

    /**
     * 查询DMP字典数据
     * @param context
     * @param dmpRequest
     * @param clazz
     * @return
     */
    AdmResponse doQueryDictData(InstanceUrlParam context, QueryCriteria dmpRequest, Class<T> clazz);

    /**
     * 查询DMP对象类型
     * @param context
     * @param dmpRequest
     * @param clazz
     * @return
     */
    AdmResponse doQueryObjectType(InstanceUrlParam context, QueryCriteria dmpRequest, Class<T> clazz);


    /**
     * 查询DMP对象信息点
     * @param context
     * @param request
     * @param clazz
     * @return
     */
    AdmResponse doQueryObjectInfo(InstanceUrlParam context, AdmQueryCriteria request,String fieldName, Class<T> clazz);


    /**
     * 修改信息点
     * @param context
     * @param clazz
     * @param voList
     * @return
     */
    List<T> doUpdateObjectInfo(InstanceUrlParam context, Class<T> clazz, List<T> voList);
    /**
     * 删除信息点
     * @param context
     * @param voList
     */
    void doDeleteObjectInfo(InstanceUrlParam context, List<T> voList);


    /**
     * 查询采集信息点
     * @param context
     * @param request
     * @param fieldName
     * @param clazz
     * @return
     */
    AdmResponse doQueryObjectInfoCollect(InstanceUrlParam context, AdmQueryCriteria request, String fieldName, Class<T> clazz);

    /**
     * 设置采集信息点
     * @param context
     * @param clazz
     * @param voList
     * @return
     */
    List<T> doSetObjectInfoCollect(InstanceUrlParam context, Class<T> clazz, List<T> voList);


}
