
package com.tmerclub.cloud.coupon.vo.mongo;

import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serial;
import java.io.Serializable;

/**
 * @author TRACK
 */
@Document("coupon_user")
public class MongoCouponUserCountVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "用户id")
    private Long userId;

    @Schema(description = "优惠券id")
    private Long couponId;

    @Schema(description = "返回数量")
    private Integer count;

    @Schema(description = "全部数量")
    private Long allCount;

    @Schema(description = "平台券数量")
    private Long platformCount;

    @Schema(description = "店铺券数量")
    private Long multishopCount;

    @Schema(description = "未使用 优惠券的数量")
    private Integer couponUsableNums;

    @Schema(description = "已使用 优惠券的数量")
    private Integer couponUsedNums;

    @Schema(description = "已过期 优惠券的数量")
    private Integer couponExpiredNums;

    @Schema(description = "已领取优惠券的数量（null/0:没有领取）")
    private Integer hasReceive;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getCouponId() {
        return couponId;
    }

    public void setCouponId(Long couponId) {
        this.couponId = couponId;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public Long getAllCount() {
        return allCount;
    }

    public void setAllCount(Long allCount) {
        this.allCount = allCount;
    }

    public Long getPlatformCount() {
        return platformCount;
    }

    public void setPlatformCount(Long platformCount) {
        this.platformCount = platformCount;
    }

    public Long getMultishopCount() {
        return multishopCount;
    }

    public void setMultishopCount(Long multishopCount) {
        this.multishopCount = multishopCount;
    }

    public Integer getCouponUsableNums() {
        return couponUsableNums;
    }

    public void setCouponUsableNums(Integer couponUsableNums) {
        this.couponUsableNums = couponUsableNums;
    }

    public Integer getCouponUsedNums() {
        return couponUsedNums;
    }

    public void setCouponUsedNums(Integer couponUsedNums) {
        this.couponUsedNums = couponUsedNums;
    }

    public Integer getCouponExpiredNums() {
        return couponExpiredNums;
    }

    public void setCouponExpiredNums(Integer couponExpiredNums) {
        this.couponExpiredNums = couponExpiredNums;
    }

    public Integer getHasReceive() {
        return hasReceive;
    }

    public void setHasReceive(Integer hasReceive) {
        this.hasReceive = hasReceive;
    }

    @Override
    public String toString() {
        return "MongoCouponUserCountVO{" +
                "userId=" + userId +
                ", couponId=" + couponId +
                ", count=" + count +
                ", allCount=" + allCount +
                ", platformCount=" + platformCount +
                ", multishopCount=" + multishopCount +
                ", couponUsableNums=" + couponUsableNums +
                ", couponUsedNums=" + couponUsedNums +
                ", couponExpiredNums=" + couponExpiredNums +
                ", hasReceive=" + hasReceive +
                '}';
    }
}
