package com.ycwl.basic.pricing.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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);
    
    Page<VoucherCodeResp> queryCodeList(VoucherCodeQueryReq req);
    
    List<VoucherCodeResp> getMyVoucherCodes(Long faceId);
    
    void markCodeAsUsed(Long codeId, String remark);
    
    boolean canClaimVoucher(Long faceId, Long scenicId);
}