
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.dto.SpuSupplierChangeLogDTO;
import com.tmerclub.cloud.product.model.SpuSupplierChangeLog;
import com.tmerclub.cloud.product.vo.SpuSupplierChangeLogVO;

import java.util.List;

/**
 * 商品供应商变更记录
 *
 * @author lhd
 * @date 2022-06-22 16:57:27
 */
public interface SpuSupplierChangeLogService {

    /**
     * 分页获取商品供应商变更记录列表
     * @param pageDTO 分页参数
     * @return 商品供应商变更记录列表分页数据
     */
    PageVO<SpuSupplierChangeLogVO> page(PageDTO pageDTO);

    /**
     * 根据商品供应商变更记录id获取商品供应商变更记录
     *
     * @param spuChangeId 商品供应商变更记录id
     * @return 商品供应商变更记录
     */
    SpuSupplierChangeLog getBySpuChangeId(Long spuChangeId);

    /**
     * 保存商品供应商变更记录
     * @param spuSupplierChangeLog 商品供应商变更记录
     */
    void save(SpuSupplierChangeLog spuSupplierChangeLog);

    /**
     * 更新商品供应商变更记录
     * @param spuSupplierChangeLog 商品供应商变更记录
     */
    void update(SpuSupplierChangeLog spuSupplierChangeLog);

    /**
     * 根据商品供应商变更记录id删除商品供应商变更记录
     * @param spuChangeId 商品供应商变更记录id
     */
    void deleteById(Long spuChangeId);

    /**
     * 批量同步
     * @param shopId
     * @param spuSupplierChangeLog
     */
    void syncSpu(Long shopId, List<SpuSupplierChangeLogDTO> spuSupplierChangeLog);

    /**
     * 批量上下架的变更记录
     * @param spuIds
     * @param status
     */
    void insertBatchChangeStatus(List<Long> spuIds, Integer status);

    /**
     * 批量插入变更记录
     * @param spuSupplierChangeLogs
     */
    void saveBatch(List<SpuSupplierChangeLog> spuSupplierChangeLogs);

}
