package com.haha.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.haha.entity.dto.DictDataQueryDTO;
import com.haha.entity.dto.DictTypeQueryDTO;
import com.haha.entity.DictData;
import com.haha.entity.DictType;

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

/**
 * 字典服务接口
 */
public interface DictService extends IService<DictType> {

    Map<String, Object> getDictTypeList(DictTypeQueryDTO queryDTO);

    DictType getDictTypeById(Long id);

    DictType getDictTypeByCode(String dictCode);

    void addDictType(DictType dictType);

    void updateDictType(DictType dictType);

    void deleteDictType(Long id);

    void batchDeleteDictType(List<Long> ids);

    List<DictData> getDictDataList(String dictCode);

    Map<String, Object> getDictDataPage(DictDataQueryDTO queryDTO);

    DictData getDictDataById(Long id);

    void addDictData(DictData dictData);

    void updateDictData(DictData dictData);

    void deleteDictData(Long id);

    void batchDeleteDictData(List<Long> ids);

    Map<String, List<DictData>> getAllDictData();

    List<DictData> getDictDataByCode(String dictCode);

    void refreshCache();

    String getDictLabel(String dictCode, String itemValue);

    String getDictValue(String dictCode, String itemLabel);

    void exportDictData(String dictCode);

    void importDictData(List<DictData> dataList);
}
