package com.ycwl.basic.pricing.service;

import com.github.pagehelper.PageInfo;
import com.ycwl.basic.pricing.dto.req.VoucherBatchCreateReq;
import com.ycwl.basic.pricing.dto.req.VoucherBatchCreateReqV2;
import com.ycwl.basic.pricing.dto.req.VoucherBatchQueryReq;
import com.ycwl.basic.pricing.dto.resp.VoucherBatchResp;
import com.ycwl.basic.pricing.dto.resp.VoucherBatchStatsResp;
import com.ycwl.basic.pricing.entity.PriceVoucherBatchConfig;

public interface VoucherBatchService {
    
    Long createBatch(VoucherBatchCreateReq req);
    
    /**
     * 创建券码批次（支持可重复使用）
     */
    Long createBatchV2(VoucherBatchCreateReqV2 req);
    
    PageInfo<VoucherBatchResp> queryBatchList(VoucherBatchQueryReq req);
    
    VoucherBatchResp getBatchDetail(Long id);
    
    VoucherBatchStatsResp getBatchStats(Long id);
    
    void updateBatchStatus(Long id, Integer status);
    
    void updateBatchClaimedCount(Long batchId);
    
    void updateBatchUsedCount(Long batchId);
    
    PriceVoucherBatchConfig getAvailableBatch(Long scenicId, Long brokerId);
}