package org.nl.system.service.dict;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.system.service.dict.dao.Dict;
import org.nl.system.service.dict.dto.DictQuery;
import org.springframework.data.domain.Pageable;

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

/**
 * <p>
 * 字典表 服务类
 * </p>
 *
 * @author generator
 * @since 2022-12-14
 */
public interface ISysDictService extends IService<Dict> {

    /**
     * 分页查找
     * @param whereJson
     * @param pageable
     * @return
     */
    IPage<Dict> queryAll(Map whereJson, PageQuery pageable);

    /**
     * 新增
     * @param dict
     */
    void create(Dict dict);

    /**
     * 修改字典数据
     * @param dto
     */
    void updateDict(Dict dto);

    /**
     * 通过id批量删除字典
     * @param ids
     */
    void deleteBatchByIds(Set<String> ids);

    /**
     * 分页查询获取字典明细
     * @param criteria
     * @param pageable
     * @return
     */
    IPage<Dict> queryAllDetail(DictQuery criteria, PageQuery pageable);

    /**
     * 获取字典明细
     * @param name
     * @return
     */
    List<Dict> getDictByName(String name);

    /**
     * 添加字典明细
     * @param resources
     */
    void createDetail(Dict resources);

    /**
     * 更新字典明细
     * @param resources
     */
    void updateDetail(Dict resources);

    /**
     * 删除字典
     * @param id
     */
    void deleteDetail(String id);

    /**
     * 查询所有字典信息
     * @return
     */
    List<Dict> queryAll();
}
