package com.ycwl.basic.pricing.service;

import com.github.pagehelper.PageInfo;
import com.ycwl.basic.pricing.dto.req.VoucherClaimReq;
import com.ycwl.basic.pricing.dto.req.VoucherCodeQueryReq;
import com.ycwl.basic.pricing.dto.resp.VoucherCodeResp;

import java.util.List;

public interface VoucherCodeService {
    
    void generateVoucherCodes(Long batchId, Long scenicId, Integer count);
    
    VoucherCodeResp claimVoucher(VoucherClaimReq req);
    
    PageInfo<VoucherCodeResp> queryCodeList(VoucherCodeQueryReq req);
    
    List<VoucherCodeResp> getMyVoucherCodes(Long userId);

    void markCodeAsUsed(Long codeId, String remark);

    boolean canClaimVoucher(Long userId, Long scenicId);
}