package com.hzs.sale.wares.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.BigDecimalFormat;
import com.hzs.common.core.annotation.Excel;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.Data;

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

@Data
public class WaresVo {

    /**
     * 商品主键
     */
    private Integer pkWares;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 视频主图
     */
    private String cover;

    /**
     * 主图
     */
    private String cover1;
    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    private String waresName;

    /**
     * 商品编号
     */
    @Excel(name = "商品编码")
    private String waresCode;

    /**
     * 商品价格
     */
    @Excel(name = "商品价格")
    @BigDecimalFormat
    private BigDecimal waresPrice;
    /**
     * 商品业绩
     */
    @Excel(name = "商品业绩")
    private BigDecimal waresAchieve;


    /**
     * 发起人收益（目前复购使用）
     */
    @Excel(name = "发起人收益(￥)", scale = 2)
    @BigDecimalFormat
    private BigDecimal makerIncome;

    /**
     * 支付比例名称
     */
    @Excel(name = "支付比例")
    private String tempName;

    /**
     * 商品权限类型
     */
    private Integer authorityType;
//    @Excel(name = "可见类型")
    private String authorityTypeVal;

    /**
     * 团队编号
     */
//    @Excel(name = "团队编号")
    private String memberCode;

    /**
     * 团队姓名
     */
//    @Excel(name = "团队姓名")
    private String memberName;


    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    private String productNames;

    /**
     * 产品编号
     */
    @Excel(name = "产品编号")
    private String productCodes;

    /**
     * 产品数量
     */
    @Excel(name = "产品数量")
    private String productQuantitys;
    /**
     * 所属专区
     */

    private Integer specialArea;
    /**
     * 所属专区
     */
    @Excel(name = "所属专区")
    private String specialAreaVal;
    /**
     * 是否单品
     */
    @Excel(name = "套餐类型", readConverterExp = "1=单品,0=套装")
    private Integer isSingle;

    /**
     * 商品类型（1=普通商品）
     */
    private Integer isMakerGift;

    /**
     * 是否包邮
     */
    @Excel(name = "包邮类型", readConverterExp = "0=包邮,1=不包邮")
    private Integer isFreeMail;

    /**
     * 分类名称
     */
    @Excel(name = "商品分类")
    private String classifyName;
    /**
     * 商品类型（1=普通商品）
     */
    @Excel(name = "商品类型")
    private String isMakerGiftVal;
    /**
     * 是否推荐  0 推荐  1 不推荐
     */
    @Transaction(transactionKey = EnumsPrefixConstants.RECOMMEND_TYPE)
    @Excel(name = "是否推荐", readConverterExp = "0=推荐,1=不推荐")
    private Integer isRecommend;
    /**
     * 是否推荐
     */
    private String isRecommendVal;
    /**
     * 供应方式（经营范围）
     */

    private Integer operateScope;
    /**
     * 供应方式（经营范围）
     */
    @Excel(name = "供应方式")
    private String operateScopeVal;
    /**
     * 是否出售
     */
    @Excel(name = "销售状态", readConverterExp = "0=允许销售,1=禁止销售")
    private Integer isSale;

    /**
     * 是否上架
     */
    @Excel(name = "上架状态", readConverterExp = "0=上架,1=下架")
    private Integer isPutOn;

    /**
     * 预售状态
     */
    private Integer preSaleStatus;

    /**
     * 预售状态
     */
    @Excel(name = "预售状态")
    private String preSaleStatusVal;

    /**
     * 虚拟 销量累加值
     */
    @Excel(name = "虚拟销量")
    private Integer sales;
    /**
     * 真实销量
     */
    @Excel(name = "实际销量")
    private Integer actualSales;

    /**
     * 商品状态（2=待审核，5=已审核）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_STATUS)
    @Excel(name = "商品状态", readConverterExp = "2=待审核,5=已审核")
    private Integer waresStatus;
    /**
     * 商品状态
     */
    private String waresStatusVal;

    /**
     * （预计时间）到货时间
     */
    @Excel(name = "预计发货时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date arrivalTime;

    /**
     * 上架日期
     */
    @Excel(name = "上架日期", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date putOnTime;
    /**
     * 下架日期
     */
    @Excel(name = "下架日期", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date putOffTime;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 上架时间
     */
    @Excel(name = "上架时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date listingTime;

    /**
     * 下架时间
     */
    @Excel(name = "下架时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date removalTime;

    /**
     * 是否强读
     */
    private Integer isForceoRead;

    /**
     * 强读时间
     */
    private Integer forceoReadTime;

    /**
     * 会员价
     */
    @BigDecimalFormat
    private BigDecimal vipPrice;

    /**
     * 零售价
     */
    @BigDecimalFormat
    private BigDecimal retailPrice;

    /**
     * - 1 置底 0 无 1置顶
     */
    private Integer sortStatus;

    /**
     * 产品列表
     */
    private List<WaresProductDetailVo> waresDetailList;

    /**
     * 商品审批人
     */
    private Integer waresApprover;

    /**
     * 商品审批时间
     */
    private Date waresApprovalTime;

}
