package com.cpop.system.business.service;

import com.cpop.system.business.bo.DictDataBo;
import com.cpop.system.business.bo.DictDataPageBo;
import com.cpop.system.business.vo.DictDataListVo;
import com.cpop.system.business.vo.DictDataPageVo;
import com.cpop.system.business.vo.DictDataVo;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.cpop.system.business.entity.DictData;

import java.util.List;

/**
 * 系统-字典数据表 服务层。
 *
 * @author DB
 * @since 2023-12-01
 */
public interface DictDataService extends IService<DictData> {

    /**
     * 获取字典数据分页
     * @author DB
     * @since 2023/12/01
     * @param bo 请求参数
     * @return Page<DictDataPageVo>
     */
    Page<DictDataPageVo> getDictDataPage(DictDataPageBo bo);

    /**
     * 根据主键获取字典数据详情
     * @author DB
     * @since 2023/12/01
     * @param id 主键
     * @return DictDataVo
     */
    DictDataVo getDictDataInfo(String id);

    /**
     * 根据字典类型获取字典数据
     * @author DB
     * @since 2023/12/01
     * @param dictType 字典类型
     * @return List<DictDataVo>
     */
    List<DictData> getDictDataByDictType(String dictType);

    /**
     * 新增字典数据
     * @author DB
     * @since 2023/12/01
     * @param bo 请求参数
     */
    void insertDictData(DictDataBo bo);

    /**
     * 修改字典数据
     * @author DB
     * @since 2023/12/01
     * @param bo 请求
     */
    void updateDictData(DictDataBo bo);

    /**
     * 删除字典数据
     * @author DB
     * @since 2023/12/01
     * @param id 主键
     */
    void removeDictData(String id);
}
