package com.ruoyi.api.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @TableName products
 */
@Data
@ApiModel(value = "商品对象", description = "商品表")
public class Products implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 删除时间
     */
    @ApiModelProperty("删除时间")
    private Date deletedAt;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createdAt;
    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    private Date updatedAt;
    /**
     * 标题
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("标题")
    @Length(max = 255, message = "编码长度不能超过255")
    private String title;
    /**
     * 市场价(单位:分)
     */
    @ApiModelProperty("市场价(单位:分)")
    private Long originPrice;
    /**
     * 供货价(单位:分)
     */
    @ApiModelProperty("供货价(单位:分)")
    private Long guidePrice;
    /**
     * 供货价(单位:分)
     */
    @ApiModelProperty("供货价(单位:分)")
    private Long price;
    /**
     * 成本价(单位:分)
     */
    @ApiModelProperty("成本价(单位:分)")
    private Long costPrice;
    /**
     * 营销价(单位:分)
     */
    @ApiModelProperty("营销价(单位:分)")
    private Long activityPrice;
    /**
     * 库存数量
     */
    @ApiModelProperty("库存数量")
    private Long stock;
    /**
     * 销量
     */
    @ApiModelProperty("销量")
    private Long sales;
    /**
     * 好评率
     */
    @ApiModelProperty("好评率")
    private Long feedbackRate;
    /**
     * 产品编号
     */
    @Size(max = -1, message = "编码长度不能超过-1")
    @ApiModelProperty("产品编号")
    @Length(max = -1, message = "编码长度不能超过-1")
    private String sn;
    /**
     * 自定义编码
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("自定义编码")
    @Length(max = 255, message = "编码长度不能超过255")
    private String code;
    /**
     * 新品（1是0否）
     */
    @ApiModelProperty("新品（1是0否）")
    private Integer isNew;
    /**
     * 推荐（1是0否）
     */
    @ApiModelProperty("推荐（1是0否）")
    private Integer isRecommend;
    /**
     * 热销（1是0否）
     */
    @ApiModelProperty("热销（1是0否）")
    private Integer isHot;
    /**
     * 促销（1是0否）
     */
    @ApiModelProperty("促销（1是0否）")
    private Integer isPromotion;
    /**
     * 上架（1是0否）
     */
    @ApiModelProperty("上架（1是0否）")
    private Integer isDisplay;
    /**
     * 锁定（1是0否）
     */
    @ApiModelProperty("锁定（1是0否）")
    private Integer statusLock;
    /**
     * 单规格(1是0否)
     */
    @ApiModelProperty("单规格(1是0否)")
    private Integer singleOption;
    /**
     * 简介
     */
    @Size(max = 200, message = "编码长度不能超过200")
    @ApiModelProperty("简介")
    @Length(max = 200, message = "编码长度不能超过200")
    private String desc;
    /**
     * 图片url
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("图片url")
    @Length(max = 191, message = "编码长度不能超过191")
    private String imageUrl;
    /**
     * 视频url
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("视频url")
    @Length(max = 191, message = "编码长度不能超过191")
    private String videoUrl;
    /**
     * 单位(件,个)
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("单位(件,个)")
    @Length(max = 255, message = "编码长度不能超过255")
    private String unit;

    /**
     * 条形码
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("条形码")
    @Length(max = 255, message = "编码长度不能超过255")
    private String barcode;
    /**
     * 长(单位:毫米)
     */
    @ApiModelProperty("长(单位:毫米)")
    @TableField("long")
    private Long length;
    /**
     * 宽(单位:毫米)
     */
    @ApiModelProperty("宽(单位:毫米)")
    private Long wide;
    /**
     * 高(单位:毫米)
     */
    @ApiModelProperty("高(单位:毫米)")
    private Long high;
    /**
     * 体积(单位:立方毫米)
     */
    @ApiModelProperty("体积(单位:立方毫米)")
    private Long volume;
    /**
     * 运费(分)
     */
    @ApiModelProperty("运费(分)")
    private Long freight;
    /**
     * 运费类型（0统一，1模板， 2第三方运费，3包邮）
     */
    @ApiModelProperty("运费类型（0统一，1模板， 2第三方运费，3包邮）")
    private Integer freightType;
    /**
     * 最高价(单位:分)
     */
    @ApiModelProperty("最高价(单位:分)")
    private Long maxPrice;
    /**
     * 最低价(单位:分)
     */
    @ApiModelProperty("最低价(单位:分)")
    private Long minPrice;
    /**
     * 相册图json数组
     */
    @Size(max = -1, message = "编码长度不能超过-1")
    @ApiModelProperty("相册图json数组")
    @Length(max = -1, message = "编码长度不能超过-1")
    private String gallery;
    /**
     * 资质json数组
     */
    @Size(max = -1, message = "编码长度不能超过-1")
    @ApiModelProperty("资质json数组")
    @Length(max = -1, message = "编码长度不能超过-1")
    private String qualifications;
    /**
     * 详情图json数组
     */
    @Size(max = -1, message = "编码长度不能超过-1")
    @ApiModelProperty("详情图json数组")
    @Length(max = -1, message = "编码长度不能超过-1")
    private String detailImages;
    /**
     * 属性json列表(冗余信息)
     */
    @Size(max = -1, message = "编码长度不能超过-1")
    @ApiModelProperty("属性json列表(冗余信息)")
    @Length(max = -1, message = "编码长度不能超过-1")
    private String attrs;
    /**
     *
     */
    @ApiModelProperty("")
    private Long brandId;
    /**
     * 供应商id
     */
    @ApiModelProperty("供应商id")
    private Long supplierId;
    /**
     * 供应链id
     */
    @ApiModelProperty("供应链id")
    private Long gatherSupplyId;
    /**
     *
     */
    @ApiModelProperty("")
    private Long category1Id;
    /**
     *
     */
    @ApiModelProperty("")
    private Long category2Id;
    /**
     *
     */
    @ApiModelProperty("")
    private Long category3Id;
    /**
     * 配送模板id
     */
    @ApiModelProperty("配送模板id")
    private Long freightTemplateId;
    /**
     * 商品来源
     */
    @ApiModelProperty("商品来源")
    private Long source;
    /**
     * 商品排序
     */
    @ApiModelProperty("商品排序")
    private Long sort;
    /**
     * 商品来源ID
     */
    @ApiModelProperty("商品来源ID")
    private Long sourceGoodsId;
    /**
     * 是否冻结
     */
    @ApiModelProperty("是否冻结")
    private Long freeze;
    /**
     *
     */
    @ApiModelProperty("")
    private Integer shopLevel;
    /**
     *
     */
    @ApiModelProperty("")
    private Integer desLevel;
    /**
     *
     */
    @ApiModelProperty("")
    private Integer expressLevel;
    /**
     *
     */
    @ApiModelProperty("")
    private Integer level;
    /**
     * 简称
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("简称")
    @Length(max = 255, message = "编码长度不能超过255")
    private String childTitle;
    /**
     *
     */
    @ApiModelProperty("")
    private Long billPosition;
    /**
     *
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("")
    @Length(max = 191, message = "编码长度不能超过191")
    private String taxCode;
    /**
     *
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("")
    @Length(max = 191, message = "编码长度不能超过191")
    private String taxShortName;
    /**
     *
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("")
    @Length(max = 191, message = "编码长度不能超过191")
    private String taxOption;
    /**
     *
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("")
    @Length(max = 191, message = "编码长度不能超过191")
    private String taxUnit;
    /**
     *
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("")
    @Length(max = 191, message = "编码长度不能超过191")
    private String favorablePolicy;
    /**
     *
     */
    @ApiModelProperty("")
    private Long isFavorablePolicy;
    /**
     *
     */
    @ApiModelProperty("")
    private Long freeOfTax;
    /**
     *
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("")
    @Length(max = 191, message = "编码长度不能超过191")
    private String shortCode;
    /**
     *
     */
    @ApiModelProperty("")
    private Long taxMeasurePrice;
    /**
     *
     */
    @ApiModelProperty("")
    private Long taxRate;
    /**
     *
     */
    @ApiModelProperty("")
    private Long isTaxLogo;
    /**
     *
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("")
    @Length(max = 255, message = "编码长度不能超过255")
    private String md5;
    /**
     * 站点ID
     */
    @ApiModelProperty("站点ID")
    private Long locationId;
    /**
     * 最小起订量
     */
    @ApiModelProperty("最小起订量")
    private Long minBuyQty;
    /**
     *
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("")
    @Length(max = 191, message = "编码长度不能超过191")
    private String taxProductName;
    /**
     *
     */
    @ApiModelProperty("")
    private Long isPlugin;
    /**
     * 利润率
     */
    @ApiModelProperty("利润率")
    private Double costRate;
    /**
     * 营销利润率
     */
    @ApiModelProperty("营销利润率")
    private Double activityRate;
    /**
     *
     */
    @ApiModelProperty("排序")
    private Long isSingleOrder;
    /**
     *
     */
    @ApiModelProperty("插件id")
    private Long pluginId;
    /**
     *
     */
    @ApiModelProperty("")
    private Long isBill;
    /**
     *
     */
    @ApiModelProperty("")
    private Long supplierSourceId;
    /**
     *
     */
    @ApiModelProperty("")
    private BigDecimal profitRate;
    /**
     *
     */
    @ApiModelProperty("")
    private Long supplierSourceCategoryId;
    /**
     *
     */
    @ApiModelProperty("")
    private Long isSupplyLine;
    /**
     *
     */
    @ApiModelProperty("")
    private Long jushuitanBind;
    /**
     *
     */
    @Size(max = 191, message = "编码长度不能超过191")
    @ApiModelProperty("")
    @Length(max = 191, message = "编码长度不能超过191")
    private String supplyLine;

}
