package com.ningdatech.pmapi.meta.helper;


import com.ningdatech.pmapi.meta.model.dto.TagDTO;
import com.ningdatech.pmapi.meta.model.dto.TagTreeDTO;

import java.util.List;
import java.util.Map;

/**
 * @author liuxinxin
 * @date 2022/12/22 上午11:56
 */

public interface TagCache {

    /**
     * @param level       最多几级标签
     * @param rootTagCode 根标签类型及对应的字段类型
     * @return
     */
    TagTreeDTO getTagTreeDTO(int level, String rootTagCode);

    /**
     * 根据标签编码获取 实体类
     *
     * @param tagCode
     * @return
     */
    TagDTO getByTagCode(String tagCode);

    /**
     * 导入原专家库数据使用
     *
     * @return
     */
    Map<String, TagDTO> getNameTagDtoMap();

    /**
     * 获取所有子节点包含当前节点
     *
     * @param code 标签编码
     * @return
     */
    List<TagTreeDTO> listChildren(String code);

    /**
     * 获取所有子节点包含当前节点的编码
     *
     * @param code 标签编码
     * @return
     */
    List<String> listChildrenCodes(String code);

}
