package cn.iocoder.yudao.module.conf.service;

import cn.iocoder.yudao.module.conf.entity.BaseType;
import cn.iocoder.yudao.module.conf.vo.BaseTypeListReqVO;
import cn.iocoder.yudao.module.conf.vo.BaseTypeRespVO;
import cn.iocoder.yudao.module.conf.vo.BaseTypeSaveReqVO;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.validation.Valid;
import java.util.List;

/**
 * 配置类型 Service 接口
 *
 * @author pqz
 */
public interface BaseTypeService extends IService<BaseType> {

    /**
     * 新增账目配置类型
     *
     * @param saveReqVO BaseTypeSaveReqVO实体
     * @author PQZ
     * @date 11:23 2024/9/10
     **/
    void saveBaseType(BaseTypeSaveReqVO saveReqVO);

    /**
     * 删除配置类型
     * @author PQZ
     * @date 17:07 2024/9/10
     * @param id 配置类型id
    **/
    void deleteBaseType(String id);

    /**
     * 根据类型id查询配置类型
     * @author PQZ
     * @date 14:40 2024/9/10
     * @param id 类型id
     * @return cn.iocoder.yudao.module.conf.entity.BaseType
    **/
    BaseTypeRespVO getBaseType(String id);

    /**
     * 获取配置类型列表
     * @author PQZ
     * @date 14:27 2024/9/10 
     * @param listReqVO BaseTypeListReqVO
     * @return java.util.List<cn.iocoder.yudao.module.conf.entity.BaseType>
    **/
    List<BaseTypeRespVO> getBaseTypeList(BaseTypeListReqVO listReqVO);

    /**
     * 查看列表，或服务、或项目、或配件
     * 根据需要的type和对应的企业
     *
     * @author 小李
     * @date 14:29 2024/9/23
     * @param baseType 查询条件
     **/
    List<BaseType> getListByTypeAndCorpId(BaseType baseType);
}