package com.ruoyi.web.v1.service;

import java.util.List;

import com.ruoyi.web.v1.DTO.PurchaserDimension;
import com.ruoyi.web.v1.model.Purchaser;
import com.ruoyi.web.v1.model.request.ReqPurchaser;

/**
 * 肉商Service接口
 * 
 * @author coede
 * @date 2025-03-19
 */
public interface IPurchaserService 
{
    /**
     * 查询肉商
     * 
     * @param id 肉商主键
     * @return 肉商
     */
    public Purchaser selectPurchaserById(Long id);

    /**
     * 查询肉商列表
     * 
     * @param purchaser 肉商
     * @return 肉商集合
     */
    public List<Purchaser> selectPurchaserList(ReqPurchaser purchaser);

    /**
     * 校验肉商名称是否唯一
     *
     * @param  purchaser 肉商
     * @return 结果
     */
    public boolean checkPurchaserNameUnique(Purchaser purchaser);

    /**
     * 校验肉商身份证号是否唯一
     *
     * @param  purchaser 肉商
     * @return 结果
     */
    public boolean checkIDNumberUnique(Purchaser purchaser);

    /**
     * 校验肉商编号是否唯一
     *
     * @param purchaser 肉商
     * @return 结果
     */
    public boolean checkPurchaserNoUnique(Purchaser purchaser);

    /**
     * 查询全部肉商列表
     *
     *
     * @return 肉商集合
     */
    public List<Purchaser> selectAllPurchaserList();

    /**
     * 新增肉商
     * 
     * @param purchaser 肉商
     * @return 结果
     */
    public int insertPurchaser(Purchaser purchaser);

    /**
     * 修改肉商
     * 
     * @param purchaser 肉商
     * @return 结果
     */
    public int updatePurchaser(Purchaser purchaser);

    /**
     * 批量删除肉商
     * 
     * @param ids 需要删除的肉商主键集合
     * @return 结果
     */
    public int deletePurchaserByIds(Long[] ids);

    /**
     * 删除肉商信息
     * 
     * @param id 肉商主键
     * @return 结果
     */
    public int deletePurchaserById(Long id);

    /**
     * 获取下一个自动生成的肉商编号
     * @return
     */
    public String getNextNo();

    Purchaser getPurchaserDimension(PurchaserDimension req);
}
