
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.StockChangeReasonStatus;

/**
 * 出入库原因状态
 *
 * @author lhd
 * @date 2022-06-22 16:57:27
 */
public interface StockChangeReasonStatusService {

    /**
     * 分页获取出入库原因状态列表
     * @param pageDTO 分页参数
     * @return 出入库原因状态列表分页数据
     */
    PageVO<StockChangeReasonStatus> page(PageDTO pageDTO);

    /**
     * 根据出入库原因状态id获取出入库原因状态
     *
     * @param stockChangeReasonStatusId 出入库原因状态id
     * @return 出入库原因状态
     */
    StockChangeReasonStatus getByStockChangeReasonStatusId(Long stockChangeReasonStatusId);

    /**
     * 保存出入库原因状态
     * @param stockChangeReasonStatus 出入库原因状态
     */
    void save(StockChangeReasonStatus stockChangeReasonStatus);

    /**
     * 更新出入库原因状态
     * @param stockChangeReasonStatus 出入库原因状态
     */
    void update(StockChangeReasonStatus stockChangeReasonStatus);

    /**
     * 根据出入库原因状态id删除出入库原因状态
     * @param stockChangeReasonStatusId 出入库原因状态id
     */
    void deleteById(Long stockChangeReasonStatusId);

    /**
     * 根据shopId 和 reasonId 获取(系统)出入库原因状态
     *
     * @param shopId   店铺id
     * @param reasonId 出入库原因id
     * @return
     */
    StockChangeReasonStatus getStatusByShopIdAndReasonId(Long shopId, Long reasonId);
}
