package cn.iocoder.yudao.module.bpm.service.oa;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.supplier.BpmOASupplierProductPageReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.supplier.BpmOASupplierProductSaveReqVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOASupplierProductDO;

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

/**
 * OA供应商商品 Service 接口
 *
 * @author 艾楷
 */
public interface BpmOaSupplierProductService {

    /**
     * 创建OA供应商商品
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createOaSupplierProduct(@Valid BpmOASupplierProductSaveReqVO createReqVO);

    /**
     * 更新OA供应商商品
     *
     * @param updateReqVO 更新信息
     */
    void updateOaSupplierProduct(@Valid BpmOASupplierProductSaveReqVO updateReqVO);

    /**
     * 删除OA供应商商品
     *
     * @param id 编号
     */
    void deleteOaSupplierProduct(Long id);

    /**
     * 获得OA供应商商品
     *
     * @param id 编号
     * @return OA供应商商品
     */
    BpmOASupplierProductDO getOaSupplierProduct(Long id);

    /**
     * 获得OA供应商商品分页
     *
     * @param pageReqVO 分页查询
     * @return OA供应商商品分页
     */
    PageResult<BpmOASupplierProductDO> getOaSupplierProductPage(BpmOASupplierProductPageReqVO pageReqVO);

    /**
     * 通过OaSupplierId获取列表
     *
     * @param oaSupplierId
     * @return
     */
    List<BpmOASupplierProductDO> getByOaSupplierId(Long oaSupplierId);
}
