package com.slodon.b2b2c.vo.statistics;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 *
 * 封装交易分析-各省份销售变化趋势Vo对象
 * @author wuxy
 */
@NoArgsConstructor
@Data
public class SalesTrendVO {

    @ApiModelProperty("统计时间")
    private String statsTime;

    @ApiModelProperty("终端编码，1、pc；2、H5；3、Android；4、IOS；5、微信小程序")
    private String terminalCode;

    @ApiModelProperty("终端名称，1、pc；2、H5；3、Android；4、IOS；5、微信小程序")
    private String terminalName;

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

    @ApiModelProperty("销售额")
    private BigDecimal orderPayAmount;

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

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

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

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

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

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

    @ApiModelProperty("关注店铺人数")
    private Integer collectionStoreNum;

    @ApiModelProperty("商品id")
    private Long goodsId;

    @ApiModelProperty("商品名称")
    private String goodsName;

    @ApiModelProperty("商品分类id，一级分类")
    private Integer categoryId;

    @ApiModelProperty("商品分类名称")
    private String categoryName;

    public SalesTrendVO(String statsTime, Integer orderPayNum) {
        this.statsTime = statsTime;
        this.orderPayNum = orderPayNum;
    }

    public SalesTrendVO(String statsTime, BigDecimal orderPayAmount) {
        this.statsTime = statsTime;
        this.orderPayAmount = orderPayAmount;
    }

    public SalesTrendVO(String statsTime, Integer newMemberNum, Integer visitorNum, Integer orderSubmitMemberNum, Integer orderPayMemberNum, Integer collectionStoreNum) {
        this.statsTime = statsTime;
        this.newMemberNum = newMemberNum;
        this.visitorNum = visitorNum;
        this.orderSubmitMemberNum = orderSubmitMemberNum;
        this.orderPayMemberNum = orderPayMemberNum;
        this.collectionStoreNum = collectionStoreNum;
    }

    public SalesTrendVO(Long goodsId, String goodsName) {
        this.goodsId = goodsId;
        this.goodsName = goodsName;
    }

    public SalesTrendVO(Integer categoryId, String categoryName) {
        this.categoryId = categoryId;
        this.categoryName = categoryName;
    }
}
