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

import cn.iocoder.yudao.module.supplier.entity.BaseSupplier;
import cn.iocoder.yudao.module.supplier.vo.BaseSupplierPageReqVO;
import cn.iocoder.yudao.module.supplier.vo.BaseSupplierRespVO;
import cn.iocoder.yudao.module.supplier.vo.BaseSupplierSaveReqVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 供应商 Service 接口
 *
 * @author pqz
 */
public interface BaseSupplierService extends IService<BaseSupplier> {


    /**
     * 保存供应商
     *
     * @param saveReqVO BaseSupplierSaveReqVO
     * @author PQZ
     * @date 11:00 2024/9/11
     **/
    void saveBaseSupplier(BaseSupplierSaveReqVO saveReqVO);

    /**
     * 生成采购单选择供应商
     * @author PQZ
     * @date 17:43 2024/10/25
     * @param supplierName 供应商名称
     * @return java.lang.String
    **/
    String appSaveSupplier(String supplierName);

    /**
     * 删除供应商信息
     *
     * @param id 供应商id
     * @author PQZ
     * @date 9:56 2024/9/12
     **/
    void deleteBaseSupplier(String id);


    /**
     * 通过供应商id查询供应商
     *
     * @param id 供应商id
     * @return cn.iocoder.yudao.module.supplier.vo.BaseSupplierRespVO
     * @author PQZ
     * @date 10:02 2024/9/12
     **/
    BaseSupplierRespVO getBaseSupplier(String id);


    /**
     * 分页查询供应商信息
     *
     * @param pageReqVO BaseSupplierPageReqVO实体
     * @param page      分页参数
     * @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.supplier.vo.BaseSupplierRespVO>
     * @author PQZ
     * @date 10:09 2024/9/12
     **/
    IPage<BaseSupplierRespVO> queryListPage(BaseSupplierPageReqVO pageReqVO, Page<BaseSupplierRespVO> page);

}