package cn.iocoder.yudao.module.system.service.biz;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.SupplierInfoPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.SupplierInfoRespVO;
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.SupplierInfoSaveReqVO;
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.excel.SupplierImportExcelVO;
import cn.iocoder.yudao.module.system.dal.dataobject.biz.SupplierInfoDO;

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

public interface SupplierInfoService {

    /**
     * 创建供应商信息
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createInfo(@Valid SupplierInfoSaveReqVO createReqVO);

    /**
     * 更新供应商信息
     *
     * @param updateReqVO 更新信息
     */
    void updateInfo(@Valid SupplierInfoSaveReqVO updateReqVO);

    /**
     * 删除供应商信息
     *
     * @param id 编号
     */
    void deleteInfo(Long id);

    /**
     * 获得供应商信息
     *
     * @param id 编号
     * @return 供应商信息
     */
    SupplierInfoDO getInfo(Long id);

    /**
     * 获得供应商信息分页
     *
     * @param pageReqVO 分页查询
     * @return 供应商信息分页
     */
    PageResult<SupplierInfoRespVO> getInfoPage(SupplierInfoPageReqVO pageReqVO);

    Map<String, Object> importSupplierExcel(List<SupplierImportExcelVO> list);

    List<SupplierInfoDO> list(Long[] tenantIds);
}
