package com.hzs.sale.product.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
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 com.hzs.common.core.web.domain.BaseEntity;
import com.hzs.common.domain.sale.product.BdProduct;
import lombok.Data;

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

/**
 * @Description:
 * @Author: yuhui
 * @Time: 2022/10/28 16:26
 * @Classname: ProductVo
 * @PackageName: com.hzs.sale.product.vo
 */
@Data
public class ProductVo implements Serializable {

    /**
     * 主键
     */
    private Integer pkId;

    private Integer pkProduct;
    /**
     * 排序
     */
    @Excel(name = "排序")
    private Integer sort;
    /**
     * 封面图
     */
    private String cover;
    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    private String productName;

    /**
     * 分类名称
     */
    @Excel(name = "所属分类")
    private String classifyName;

    /**
     * 分类名称（翻译）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_SPEC)
    private Integer classifyPkTransaction;

    /**
     * 分类名称（翻译）
     */
    private String classifyPkTransactionVal;

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


    /**
     * 所属分类
     */

    private Integer pkClassify;
    /**
     * 发货渠道
     */
    private Integer shippingChannel;
    /**
     * 发货类型翻译
     */
    @Excel(name = "发货类型")
    private String shippingChannelVal;

    /**
     * 长  以厘米作为单位
     */
    @Excel(name = "长(CM)")
    private BigDecimal length;

    /**
     * 宽 以厘米作为单位
     */
    @Excel(name = "宽(CM)")
    private BigDecimal width;

    /**
     * 高 以厘米作为单位
     */
    @Excel(name = "高(CM)")
    private BigDecimal height;


    /**
     * 重量  以千克作为单位
     */
    @Excel(name = "重量(KG)")
    private BigDecimal weight;

    /**
     * 邮费重量 以千克作为单位
     */
    @Excel(name = "邮费重量(KG)")
    private BigDecimal postageWeight;

    /**
     * 单位 来源于枚举：单位
     */
    private Integer unit;

    /**
     * 单位翻译
     */
    @Excel(name = "单位")
    private String unitVal;
    /**
     * 商品属性
     */
    private Integer productAttr;

    /**
     * 产品属性翻译
     */
    @Excel(name = "产品属性")
    private String productAttrVal;

    /**
     * 建议零售价（划线价）
     */
    @Excel(name = "划线价")
    @BigDecimalFormat("#0.0000")
    private BigDecimal retailPrice;
    /**
     * 保质期
     */
    @Excel(name = "保质期(天)")
    private Integer shelfLife;

    /**
     * 产品规格
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_SPEC)
    private Integer productSpecType;

    @Excel(name = "产品规格")
    private String productSpecTypeVal;

    /**
     * 来源于枚举：是否，默认是
     */
    private Integer isGift;
    /**
     * 礼包翻译
     */
    @Excel(name = "礼包")
    private String isGiftVal;
    /**
     * 是否提货             来源于枚举：是否，默认否
     */
    private Integer isPickUp;

    @Excel(name = "提货")
    private String isPickUpVal;
    /**
     * 是否抽奖奖品    来源于枚举：是否，默认否
     */

    private Integer isPrize;
    /**
     * 奖品翻译
     */
    @Excel(name = "奖品")
    private String isPrizeVal;
    /**
     * 是否条码管理    来源于枚举：是否，默认否
     */
    private Integer isBarCode;

    /**
     * 是否条码管理 翻译   来源于枚举：是否，默认否
     */
    @Excel(name = "追溯编号")
    private String isBarCodeVal;

    /**
     * 能否合并发货    来源于枚举：是否，默认是
     */
    private Integer isMerge;
    /**
     *合并发货 翻译
     */
    @Excel(name = "合并发货")
    private String isMergeVal;

    /**
     * 是否冷链
     */
    private Integer isFresh;
    /**
     * 冷链运输翻译
     */
    @Excel(name = "冷链运输")
    private String isFreshVal;


    /**
     * 是否海运
     */

    private Integer isOceanTrans;
    /**
     * 是否空运
     */
    private Integer isAirTrans;

    /**
     * 是否陆运
     */

    private Integer isLandTrans;
    /**
     * 运输方式合并 / 分割
     */
    @Excel(name = "运输方式")
    private String typeShippingMerge;


    /**
     * 创建人ID
     */
    private Long pkCreator;

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

    /**
     * 修改人ID
     */
    private Long pkModified;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifiedTime;

    /**
     * 逻辑删除 (0=未删除，1已删除)
     */
    private Integer delFlag;

    /**
     * 国家
     */
    private Integer pkCountry;
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_PRO)
    private Integer pkTransaction;


    private String pkTransactionVal;

    /**
     * 产品基本信息名称
     */
    private String productBasName;


    private String unitStr;

    /**
     * 产品规格明细
     */

    private List<ProductSpecsVo> productSpecsList;

}
