package com.wansenai.service.stock;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wansenai.entities.stock.BasStockAccount;
import com.wansenai.vo.stock.StockAccountVO;

import java.math.BigDecimal;
import java.util.List;

public interface BasStockAccountService extends IService<BasStockAccount> {
    
    /**
     * 查询库存信息
     */
    BasStockAccount getStockInfo(Long warehouseId, Long goodsId);
    
    /**
     * 更新库存数量
     */
    boolean updateStockQty(Long id, BigDecimal qty);
    
    /**
     * 更新锁定数量
     */
    boolean updateLockQty(Long id, BigDecimal qtyLock);
    
    /**
     * 更新在途数量
     */
    boolean updateTranQty(Long id, BigDecimal qtyTran);
    
    /**
     * 批量添加库存信息
     */
    boolean batchAddStock(List<BasStockAccount> stockList);
    
    /**
     * 添加库存信息
     */
    boolean addStock(BasStockAccount stock);
    
    /**
     * 更新库存信息
     */
    boolean updateStock(BasStockAccount stock);
    
    /**
     * 获取库存详情(包含关联信息)
     */
    StockAccountVO getStockDetailById(Long id);
    
    /**
     * 分页查询库存列表(包含关联信息)
     */
    IPage<StockAccountVO> getStockVOPage(Page<BasStockAccount> page, Long warehouseId, Long goodsId);
}
