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

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 券码使用统计摘要响应
 */
@Data
public class VoucherUsageSummaryResp {
    
    /**
     * 券码
     */
    private String voucherCode;
    
    /**
     * 批次ID
     */
    private Long batchId;
    
    /**
     * 批次名称
     */
    private String batchName;
    
    /**
     * 总使用记录数（重复使用产生多条记录）
     */
    private Integer totalUsageRecords;
    
    /**
     * 使用过的独立用户数
     */
    private Integer uniqueUsers;
    
    /**
     * 使用统计
     */
    private UsageStatistics usageStatistics;
    
    /**
     * 使用时间轴
     */
    private List<UsageTimeline> usageTimeline;
    
    @Data
    public static class UsageStatistics {
        /**
         * 最大可使用次数
         */
        private Integer maxUseCount;
        
        /**
         * 当前已使用次数
         */
        private Integer currentUseCount;
        
        /**
         * 剩余使用次数
         */
        private Integer remainingUseCount;
        
        /**
         * 使用率
         */
        private BigDecimal usageRate;
        
        /**
         * 是否还能使用
         */
        private Boolean canUseMore;
    }
    
    @Data
    public static class UsageTimeline {
        /**
         * 使用时间
         */
        private Date useTime;
        
        /**
         * 用户人脸ID
         */
        private Long faceId;
        
        /**
         * 订单ID
         */
        private String orderId;
        
        /**
         * 优惠金额
         */
        private BigDecimal discountAmount;
    }
}