package com.ycwl.basic.pricing.dto.resp;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 券码批次概览响应
 */
@Data
public class VoucherBatchOverviewResp {
    
    /**
     * 批次ID
     */
    private Long batchId;
    
    /**
     * 批次名称
     */
    private String batchName;
    
    /**
     * 券码总数
     */
    private Integer totalCodes;
    
    /**
     * 已领取券码数
     */
    private Integer claimedCodes;
    
    /**
     * 已使用券码数（至少使用过一次）
     */
    private Integer usedCodes;
    
    /**
     * 已达到最大使用次数的券码数
     */
    private Integer exhaustedCodes;
    
    /**
     * 总使用记录数（支持重复使用）
     */
    private Integer totalUsageRecords;
    
    /**
     * 平均每个券码使用次数
     */
    private BigDecimal averageUsagePerCode;
    
    /**
     * 重复使用率 (重复使用的券码数/已使用券码数 * 100)
     */
    private BigDecimal repeatUsageRate;
    
    /**
     * 可重复使用设置
     */
    private RepeatableSettings repeatableSettings;
    
    @Data
    public static class RepeatableSettings {
        /**
         * 每个券码最大使用次数
         */
        private Integer maxUseCount;
        
        /**
         * 每个用户最大使用次数
         */
        private Integer maxUsePerUser;
        
        /**
         * 使用间隔小时数
         */
        private Integer useIntervalHours;
    }
}