package easydo.technology.system.service;

import java.util.List;

import easydo.technology.system.domain.Dict;
import easydo.technology.system.domain.DictDetail;
import easydo.technology.system.dto.DictDetailDto;
import easydo.technology.system.dto.DictDetailQueryParam;
import org.springframework.data.domain.Pageable;

import easydo.technology.base.CommonService;
import easydo.technology.base.PageInfo;


/**
* @author jinjin
* @date 2020-09-24
*/
public interface DictDetailService  extends CommonService<DictDetail> {

    /**
    * 查询数据分页
    * @param query 条件
    * @param pageable 分页参数
    * @return map[totalElements, content]
    */
    PageInfo<DictDetailDto> queryAll(DictDetailQueryParam query, Pageable pageable);

    /**
    * 查询所有数据不分页
    * @param query 条件参数
    * @return List<DictDetailDto>
    */
    List<DictDetailDto> queryAll(DictDetailQueryParam query);

    /**
     * 根据字典名称获取字典详情
     * @param name 字典名称
     * @return /
     */
    List<DictDetailDto> getDictByName(String name);

    PageInfo<DictDetailDto> getDictByName(String dictName, Pageable pageable);

    boolean removeById(Long id);
    boolean removeByDictId(Long id);

    boolean updateById(DictDetailDto resources);

    boolean save(DictDetailDto resources);

    /**
     * 传入 父表 主键及 子表key
     * * @param dictId
     * @param dictDetailLabel
     * @return
     */
    DictDetail getDictIdAndDictName(String dictId, String dictDetailLabel);

    /**
     * 传入 父表 主键及 子表key
     * * @param dictId
     * @param dictName
     * @return
     */
    Dict getDictByDictName(String dictName);


}
