package com.hzya.frame.mdm.service;

import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity;
import com.hzya.frame.mdm.mdmModuleDb.entity.MdmModuleDbEntity;
import com.hzya.frame.mdm.mdmModuleDbFileds.entity.MdmModuleDbFiledsEntity;
import com.hzya.frame.mdm.mdmModuleDbFiledsRule.entity.MdmModuleDbFiledsRuleEntity;
import com.hzya.frame.mdm.mdmModuleDistribute.entity.MdmModuleDistributeEntity;
import com.hzya.frame.mdm.mdmModuleDistributeDetail.entity.MdmModuleDistributeDetailEntity;
import com.hzya.frame.mdm.mdmModuleSource.entity.MdmModuleSourceEntity;
import com.hzya.frame.mdm.mdmModuleView.entity.MdmModuleViewEntity;
import com.hzya.frame.mdm.mdmModuleViewButton.entity.MdmModuleViewButtonEntity;
import com.hzya.frame.mdm.mdmModuleViewDetail.entity.MdmModuleViewDetailEntity;
import com.hzya.frame.mdm.mdmTableCodeRule.entity.MdmTableCodeRuleEntity;
import com.hzya.frame.web.entity.JsonResultEntity;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;

import java.util.List;

/**
 * 主数据服务接口
 */
public interface IMdmServiceCache {

    /**
     * @Author lvleigang
     * @Description  获取模版主表
     * @Date 10:13 上午 2024/6/3
     * @param mdmCode
     * @return com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity
     **/
    MdmModuleEntity getMdmModuleEntity(Long mdmCode);

    /**
     * @Author lvleigang
     * @Description  修改模版主表
     * @Date 10:13 上午 2024/6/3
     * @param entity
     * @return com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity
     **/
    void updateMdmModuleEntity(MdmModuleEntity entity);

    /**
     * @Author lvleigang
     * @Description  删除模版主表
     * @Date 10:13 上午 2024/6/3
     * @param entity
     * @return com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity
     **/
    void deleteMdmModuleEntity(MdmModuleEntity entity);
    /**
     * @Author lvleigang
     * @Description  获取模版表数据
     * @Date 10:13 上午 2024/6/3
     * @param queryDb
     * @return com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity
     **/
    List<MdmModuleDbEntity> queryMdmModuleDb(MdmModuleDbEntity queryDb);

    /**
     * @Author lvleigang
     * @Description  修改模版表数据
     * @Date 4:23 下午 2024/6/11
     * @param mdmId
     * @param mdmModuleDbEntities
     * @return void
     **/
    void saveOrUpdateMdmModuleDb(String mdmId, List<MdmModuleDbEntity> mdmModuleDbEntities);


    /**
     * @Author lvleigang
     * @Description  删除模版表数据
     * @Date 4:23 下午 2024/6/11
     * @param mdmId
     * @return void
     **/
    void deleteMdmModuleDb(String mdmId,String dbID);
    /**
     * @Author lvleigang
     * @Description  获取模版字段表数据
     * @Date 10:13 上午 2024/6/3
     * @param queryDbFiled
     * @return com.hzya.frame.mdm.mdmModule.entity.MdmModuleEntity
     **/
    List<MdmModuleDbFiledsEntity> queryMdmModuleDbFileds(MdmModuleDbFiledsEntity queryDbFiled);

    /**
     * @Author lvleigang
     * @Description  修改数据源db的字段
     * @Date 4:25 下午 2024/6/11
     * @param mdmId
     * @param mdmModuleDbFiledsEntities
     * @return void
     **/
    void saveOrUpdateMdmModuleDbFileds(String mdmId, List<MdmModuleDbFiledsEntity> mdmModuleDbFiledsEntities);
    /**
     * @Author lvleigang
     * @Description  删除数据源db的字段
     * @Date 4:25 下午 2024/6/11
     * @param mdmId
     * @return void
     **/
    void deleteMdmModuleDbFileds(String mdmId,String dbID);
}
