
package com.tmerclub.cloud.product.service;

import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.product.model.SpuConsignmentChange;

import java.util.List;

/**
 * 商家代销商品基本信息相对于供应商品是否改变
 *
 * @author tmerclub
 * @date 2022-08-11 22:21:10
 */
public interface SpuConsignmentChangeService {

    /**
     * 分页获取商家代销商品基本信息相对于供应商品是否改变列表
     * @param pageDTO 分页参数
     * @return 商家代销商品基本信息相对于供应商品是否改变列表分页数据
     */
    PageVO<SpuConsignmentChange> page(PageDTO pageDTO);

    /**
     * 根据商家代销商品基本信息相对于供应商品是否改变id获取商家代销商品基本信息相对于供应商品是否改变
     *
     * @param consignmentChangeId 商家代销商品基本信息相对于供应商品是否改变id
     * @return 商家代销商品基本信息相对于供应商品是否改变
     */
    SpuConsignmentChange getByConsignmentChangeId(Long consignmentChangeId);

    /**
     * 保存商家代销商品基本信息相对于供应商品是否改变
     * @param spuConsignmentChange 商家代销商品基本信息相对于供应商品是否改变
     */
    void save(SpuConsignmentChange spuConsignmentChange);

    /**
     * 更新商家代销商品基本信息相对于供应商品是否改变
     * @param spuConsignmentChange 商家代销商品基本信息相对于供应商品是否改变
     */
    void update(SpuConsignmentChange spuConsignmentChange);

    /**
     * 根据商家代销商品基本信息相对于供应商品是否改变id删除商家代销商品基本信息相对于供应商品是否改变
     * @param consignmentChangeId 商家代销商品基本信息相对于供应商品是否改变id
     */
    void deleteById(Long consignmentChangeId);

    /**
     * 根据商品Id获取信息
     * @param spuId
     * @return
     */
    SpuConsignmentChange getBySpuId(Long spuId);

    /**
     * 根据商品Id批量获取信息
     * @param spuIdList
     * @return
     */
    List<SpuConsignmentChange> batchGetBySpuIdList(List<Long> spuIdList);

    /**
     * 根据商品Id获取信息
     * @param spuId
     * @return
     */
    SpuConsignmentChange consignmentChange(Long spuId);
}
