package com.hz.pm.api.meta.helper;


import com.hz.pm.api.meta.constant.DictTypeEnum;
import com.hz.pm.api.meta.model.dto.DictionaryDTO;

import java.util.List;
import java.util.Optional;

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

public interface DictionaryCache {

    /**
     * 根据字典类型枚举 获取 字典列表
     *
     * @param dictionaryType \
     * @return \
     */
    List<DictionaryDTO> listDictByDictType(DictTypeEnum dictionaryType);

    /**
     * 根据字典类型 获取 字典列表
     *
     * @param dictType \
     * @return \
     */
    List<DictionaryDTO> listDictByDictType(String dictType);

    /**
     * 根据字典类型、字典编码 获取 字典实体
     *
     * @param dictionaryType \
     * @param code           \
     * @return \
     */
    DictionaryDTO getDictionaryByDictionaryType(DictTypeEnum dictionaryType, String code);

    /**
     * 根据字典编码 获取 字典实体
     *
     * @param dictCode \
     * @return \
     */
    Optional<DictionaryDTO> getByCode(String dictCode);

    Optional<DictionaryDTO> getByDictTypeAndName(String dictType, String name);

}
