package com.njcn.csdevice.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.param.CsDevModelAddParm;
import com.njcn.csdevice.pojo.param.CsDevModelAuditParm;
import com.njcn.csdevice.pojo.param.CsDevModelQueryListParm;
import com.njcn.csdevice.pojo.param.CsDevModelQueryParm;
import com.njcn.csdevice.pojo.po.CsDevModelPO;
import com.njcn.csdevice.pojo.vo.CsDevModelPageVO;

/**
 * 
 * Description:
 * 接口文档访问地址：http://serverIP:port/swagger-ui.html
 * Date: 2023/4/10  11:28【需求编号】
 *
 * @author clam
 * @version V1.0.0
 */
public interface CsDevModelService extends IService<CsDevModelPO>{

    /**
     * 初始化缓存模板信息
     * 想缓存模板，发现数据量太大，先按照之前的逻辑处理
     */
    void refreshDevModelCache();

        /** 
        * @Description: addDevModel 
        * @Param: [csDevModelAddParm] 
        * @return: java.lang.Boolean 
        * @Author: clam
        * @Date: 2023/4/10 
        */
        CsDevModelPO addDevModel(CsDevModelAddParm csDevModelAddParm);
        /** 
        * @Description: AuditDevModel
        * @Param: [csDevModelAuditParm] 
        * @return: java.lang.Boolean 
        * @Author: clam
        * @Date: 2023/4/10 
        */ 
        Boolean AuditDevModel(CsDevModelAuditParm csDevModelAuditParm);
        /** 
        * @Description: 设备模板
        * @Param: [csDevModelQueryParm] 
        * @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.algorithm.pojo.vo.CsDevModelPageVO> 
        * @Author: clam
        * @Date: 2023/4/10 
        */ 
        IPage<CsDevModelPageVO> queryPage(CsDevModelQueryParm csDevModelQueryParm);
    /** 
    * @Description: queryList 
    * @Param: [projectEquipmentQueryParm] 
    * @return: java.util.List<com.njcn.algorithm.pojo.vo.CsDevModelPageVO> 
    * @Author: clam
    * @Date: 2023/4/10
     * @param projectEquipmentQueryParm
    */ 
    CsDevModelPageVO queryDevModelOne(CsDevModelQueryListParm projectEquipmentQueryParm);

    /**
     * 根据条件查询模板
     * @param devType
     * @param version
     * @param time
     * @return
     */
    CsDevModelPO findModel(String devType, String version, String time);

    /**
     *  根据id获取模板信息
     * @param id
     * @return
     */
    CsDevModelPO getModelById(String id);

    /**
     * 获取云前置模板
     * @return
     */
    CsDevModelPO getCldModel();

}
