package com.ycwl.basic.pricing.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycwl.basic.pricing.dto.req.VoucherBatchCreateReq;
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);
    
    Page<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);
}