package com.seamew.lottery.infrastructure.dao;

import com.seamew.lottery.infrastructure.po.StrategyDetail;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Author: seamew
 * @Title: IStrategyDetailDao
 * @CreateTime: 2023年02月13日 21:04:00
 * @Description: 策略明细表DAO
 * @Version: 1.0
 */
@Mapper
public interface IStrategyDetailDao {

    /**
     * 查询策略表详细配置
     *
     * @param strategyId 策略ID
     * @return 返回结果
     */
    List<StrategyDetail> queryStrategyDetailList(Long strategyId);

    /**
     * 查询无库存策略奖品ID
     *
     * @param strategyId 策略ID
     * @return 返回结果
     */
    List<String> queryNoStockStrategyAwardList(Long strategyId);

    /**
     * 扣减库存
     *
     * @param strategyDetailReq 策略ID、奖品ID
     * @return 返回结果
     */
    int deductStock(StrategyDetail strategyDetailReq);

    /**
     * 插入策略配置组
     *
     * @param list 策略配置组
     */
    void insertList(List<StrategyDetail> list);

    /**
     * 更新用户抽到奖品时，奖品库存
     *
     * @param strategyDetail 策略明细
     */
    void updateAwardStock(StrategyDetail strategyDetail);
}
