
package com.tmerclub.cloud.group.vo.app;

import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author YXF
 * @date 2021/3/26
 */
public class AppGroupActivityVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "拼团活动id")
    private Long groupActivityId;

    @Schema(description = "拼团状态(-1:删除、0:未启用、1:启用、2:违规下架、3:等待审核 4:已失效 5:已结束)")
    private Integer status;

    @Schema(description = "活动开始时间")
    private Date startTime;

    @Schema(description = "活动结束时间")
    private Date endTime;

    @Schema(description = "成团人数")
    private Integer groupNumber;

    @Schema(description = "商品是否限购（1:限购、0:不限购）")
    private Integer hasMaxNum;

    @Schema(description = "限购数量")
    private Integer maxNum;

    @Schema(description = "已购买数量")
    private Integer prodCount;

    @Schema(description = "当前用户参团的团队ID（null表示还没有参加该活动）")
    private Long joinGroupTeamId;

    @Schema(description = "开启模拟成团后，拼团有效期内人数未满的团，系统将会模拟“匿名买家”凑满人数，使该团成团。 你只需要对已付款参团的真实买家发货。建议合理开启，以提高成团率。")
    private Integer hasGroupTip;

    @Schema(description = "开启后，商品详情页展示未开始的拼团活动，但活动开始前用户无法拼团购买")
    private Integer isPreheat;

    @Schema(description = "活动状态（活动状态：1:未开始、2:进行中、3:已结束、4:已失效）")
    private Integer activityStatus;

    @Schema(description = "商品活动价格（最低价）")
    private Long price;

    @Schema(description = "商品id")
    private Long spuId;

    @Schema(description = "店铺id")
    private Long shopId;

    @Schema(description = "在多少秒后过期")
    private Long expiresIn;

    @Schema(description = "在多少秒后开始")
    private Long startIn;

    @Schema(description = "sku列表")
    private List<AppGroupSkuVO> groupSkuList;

    @Schema(description = "供应商商品类型 0.否 1.是 2.商家代销")
    private Integer supplierSpuType;

    @Schema(description = "发货方式 1.供应商发货 2.仓库发货")
    private Integer supplierDeliveryType;

    public Integer getSupplierDeliveryType() {
        return supplierDeliveryType;
    }

    public void setSupplierDeliveryType(Integer supplierDeliveryType) {
        this.supplierDeliveryType = supplierDeliveryType;
    }

    public Integer getSupplierSpuType() {
        return supplierSpuType;
    }

    public void setSupplierSpuType(Integer supplierSpuType) {
        this.supplierSpuType = supplierSpuType;
    }

    public Long getGroupActivityId() {
        return groupActivityId;
    }

    public void setGroupActivityId(Long groupActivityId) {
        this.groupActivityId = groupActivityId;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }


    public Integer getGroupNumber() {
        return groupNumber;
    }

    public void setGroupNumber(Integer groupNumber) {
        this.groupNumber = groupNumber;
    }

    public Integer getHasMaxNum() {
        return hasMaxNum;
    }

    public void setHasMaxNum(Integer hasMaxNum) {
        this.hasMaxNum = hasMaxNum;
    }

    public Integer getMaxNum() {
        return maxNum;
    }

    public void setMaxNum(Integer maxNum) {
        this.maxNum = maxNum;
    }

    public Integer getProdCount() {
        return prodCount;
    }

    public void setProdCount(Integer prodCount) {
        this.prodCount = prodCount;
    }

    public Long getJoinGroupTeamId() {
        return joinGroupTeamId;
    }

    public void setJoinGroupTeamId(Long joinGroupTeamId) {
        this.joinGroupTeamId = joinGroupTeamId;
    }

    public Integer getHasGroupTip() {
        return hasGroupTip;
    }

    public void setHasGroupTip(Integer hasGroupTip) {
        this.hasGroupTip = hasGroupTip;
    }

    public Integer getIsPreheat() {
        return isPreheat;
    }

    public void setIsPreheat(Integer isPreheat) {
        this.isPreheat = isPreheat;
    }

    public void setActivityStatus(Integer activityStatus) {
        this.activityStatus = activityStatus;
    }

    public Integer getActivityStatus() {
        return activityStatus;
    }

    public Long getPrice() {
        return price;
    }

    public void setPrice(Long price) {
        this.price = price;
    }

    public List<AppGroupSkuVO> getGroupSkuList() {
        return groupSkuList;
    }

    public void setGroupSkuList(List<AppGroupSkuVO> groupSkuList) {
        this.groupSkuList = groupSkuList;
    }


    public Long getSpuId() {
        return spuId;
    }

    public void setSpuId(Long spuId) {
        this.spuId = spuId;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Long getExpiresIn() {
        return expiresIn;
    }

    public void setExpiresIn(Long expiresIn) {
        this.expiresIn = expiresIn;
    }

    public Long getStartIn() {
        return startIn;
    }

    public void setStartIn(Long startIn) {
        this.startIn = startIn;
    }

    @Override
    public String toString() {
        return "AppGroupActivityVO{" +
                "groupActivityId=" + groupActivityId +
                ", status=" + status +
                ", startTime=" + startTime +
                ", endTime=" + endTime +
                ", groupNumber=" + groupNumber +
                ", hasMaxNum=" + hasMaxNum +
                ", maxNum=" + maxNum +
                ", prodCount=" + prodCount +
                ", joinGroupTeamId=" + joinGroupTeamId +
                ", hasGroupTip=" + hasGroupTip +
                ", isPreheat=" + isPreheat +
                ", activityStatus=" + activityStatus +
                ", price=" + price +
                ", spuId=" + spuId +
                ", shopId=" + shopId +
                ", expiresIn=" + expiresIn +
                ", startIn=" + startIn +
                ", groupSkuList=" + groupSkuList +
                ", supplierSpuType=" + supplierSpuType +
                ", supplierDeliveryType=" + supplierDeliveryType +
                '}';
    }
}
