package com.slodon.b2b2c.statistics.pojo.base;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 平台统计基类
 */
@Data
public class PlatformBase implements Serializable {

    private static final long serialVersionUID = -5270641777559685284L;
    @ApiModelProperty("统计id")
    private Long statsId;

    @ApiModelProperty("统计时间，数据统计的开始时间")
    private Date statsTime;

    @ApiModelProperty("站点")
    private String webSite;

    @ApiModelProperty("访客数")
    private Integer visitorNum;

    @ApiModelProperty("新访客数")
    private Integer newVisitorNum;

    @ApiModelProperty("浏览量")
    private Integer viewNum;

    @ApiModelProperty("店铺访客总数")
    private Integer storeVisitorNum;

    @ApiModelProperty("店铺浏览总数")
    private Integer storeViewNum;

    @ApiModelProperty("商品访客总数")
    private Integer goodsVisitorNum;

    @ApiModelProperty("商品浏览总数")
    private Integer goodsViewNum;

    @ApiModelProperty("下单数")
    private Integer orderSubmitNum;

    @ApiModelProperty("下单金额")
    private BigDecimal orderSubmitAmount;

    @ApiModelProperty("下单人数")
    private Integer orderSubmitMemberNum;

    @ApiModelProperty("下单客单价，下单金额/下单人数")
    private BigDecimal orderSubmitAtv;

    @ApiModelProperty("支付订单数")
    private Integer orderPayNum;

    @ApiModelProperty("支付订单金额")
    private BigDecimal orderPayAmount;

    @ApiModelProperty("支付订单人数")
    private Integer orderPayMemberNum;

    @ApiModelProperty("支付订单客单价，支付订单金额/支付订单人数")
    private BigDecimal orderPayAtv;

    @ApiModelProperty("访问-下单转化率，下单人数/访客数*100%")
    private String pvSubmitRate;

    @ApiModelProperty("访问-支付转化率，支付订单人数/访客数*100%")
    private String pvPayRate;

    @ApiModelProperty("下单-支付转化率，支付订单人数/下单人数*100%")
    private String submitPayRate;

    @ApiModelProperty("动销商品数")
    private Integer salingGoodsNum;

    @ApiModelProperty("新增商品数")
    private Integer newGoodsNum;

    @ApiModelProperty("新增品牌数")
    private Integer newBrandNum;

    @ApiModelProperty("新增会员数")
    private Integer newMemberNum;

    @ApiModelProperty("储值会员数")
    private Integer rechargeMemberNum;

    @ApiModelProperty("新增店铺数")
    private Integer newStoreNum;

    public void copy(PlatformBase platformBase){
        BeanUtils.copyProperties(platformBase,this);
    }
}
