package com.ycwl.basic.pricing.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycwl.basic.pricing.entity.PriceVoucherBatchConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 券码批次配置Mapper
 */
@Mapper
public interface PriceVoucherBatchConfigMapper extends BaseMapper<PriceVoucherBatchConfig> {
    
    /**
     * 根据景区ID和推客ID查询有效的批次列表
     * @param scenicId 景区ID
     * @param brokerId 推客ID
     * @return 批次列表
     */
    List<PriceVoucherBatchConfig> selectActiveBatchesByScenicAndBroker(@Param("scenicId") Long scenicId, 
                                                                        @Param("brokerId") Long brokerId);
    
    /**
     * 更新批次的已领取数量
     * @param batchId 批次ID
     * @param increment 增量（可为负数）
     * @return 影响行数
     */
    int updateClaimedCount(@Param("batchId") Long batchId, @Param("increment") Integer increment);
    
    /**
     * 更新批次的已使用数量
     * @param batchId 批次ID
     * @param increment 增量（可为负数）
     * @return 影响行数
     */
    int updateUsedCount(@Param("batchId") Long batchId, @Param("increment") Integer increment);
    
    /**
     * 获取批次统计信息
     * @param batchId 批次ID
     * @return 统计信息
     */
    PriceVoucherBatchConfig selectBatchStats(@Param("batchId") Long batchId);
}