package com.hai.service;

import com.hai.entity.HighDiscountPackageActual;
import com.hai.entity.HighDiscountPackageDiscountActual;

import java.util.List;
import java.util.Map;

/**
 * @serviceName HighDiscountPackageActualService.java
 * @author Sum1Dream
 * @version 1.0.0
 * @Description // 优惠券包实际库存接口
 * @createTime 3:02 下午 2021/12/8
 **/
public interface HighDiscountPackageActualService {

    /**
    * @Author Sum1Dream
    * @name insertHighDiscountPackageActual.java
    * @Description // 新增优惠券包实际库存
    * @Date 3:03 下午 2021/12/8
    * @Param [com.hai.entity.HighDiscountPackageActual]
    * @return void
    */
    void insertHighDiscountPackageActual(HighDiscountPackageActual highDiscountPackageActual);


    /**
    * @Author Sum1Dream
    * @name updateHighDiscountPackageActual.java
    * @Description // 修改优惠券包实际库存
    * @Date 3:04 下午 2021/12/8
    * @Param [com.hai.entity.HighDiscountPackageActual]
    * @return void
    */
    void updateHighDiscountPackageActual(HighDiscountPackageActual highDiscountPackageActual);


    /**
    * @Author Sum1Dream
    * @name getHighDiscountPackageActualList.java
    * @Description // 查询优惠券包列表;
    * @Date 3:05 下午 2021/12/8
    * @Param [java.util.Map<java.lang.String,java.lang.Object>]
    * @return java.util.List<com.hai.entity.HighDiscountPackageActual>
    */
    List<HighDiscountPackageActual> getHighDiscountPackageActualList(Integer discountPackageId);

    /**
     * 获取库存
     * @param packageId
     * @return
     */
    long getStockByPackageId(Integer packageId);

    /**
     * 获取库存
     * @param childOrderId
     * @return
     */
    HighDiscountPackageActual getDetailByChildOrderId(Long childOrderId);

    /**
     * 查询优惠券包列表
     * @param packageId
     * @param status
     * @return
     */
    List<HighDiscountPackageActual> getListByPackageId(Integer packageId, Integer status);

    /**
     * @Author Sum1Dream
     * @name getDiscountPackageNum.java
     * @Description // 获取优惠券包实际库存数量
     * @Date 9:59 上午 2021/12/10
     * @Param [java.lang.Integer]
     * @return java.lang.Integer
     */
    Long getDiscountPackageNum(Integer discountPackageId);

    /**
    * @Author Sum1Dream
    * @name userPurchaseByUserId.java
    * @Description // 查询用户是否限购
    * @Date 5:09 下午 2021/12/10
    * @Param [java.lang.Integer, java.lang.Integer]
    * @return java.lang.Long
    */
    Long userPurchaseByUserId(Integer userId , Integer discountPackage);

}
