package com.qs.mp.admin.domain;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qs.mp.common.enums.GoodsStatusEnum;


import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.*;

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

/**
 * @describe 商品库实体类
 * @auther quanshu
 * @create 2022-03-07 20:43:44
 */
@TableName("mp_goods")
@Data
@ApiModel("商品库实体类")
public class Goods implements Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * 主键
   */
  @ApiModelProperty("商品ID,主键")
  @TableId(value = "goods_id", type = IdType.AUTO)
  private Long goodsId;

  /**
   * 商品标题
   */
  @ApiModelProperty("商品标题")
  @TableField("title")
  private String title;

  /**
   * 商品类目ID
   */
  @ApiModelProperty("商品类目ID")
  @TableField("category_id")
  private Long categoryId;

  @ApiModelProperty("商品编码")
  @TableField("goods_code")
  private String goodsCode;

  /**
   * 商品图片
   */
  @ApiModelProperty("商品图片")
  @TableField("pic_url")
  private String picUrl;

  /**
   * 详情
   */
  @ApiModelProperty("详情")
  @TableField("description")
  private String description;

  /**
   * 原兑换价格
   */
  @ApiModelProperty("原兑换价格")
  @TableField("origin_price")
  private Integer originPrice;

  /**
   * 现兑换价格
   */
  @ApiModelProperty("现兑换价格")
  @TableField("exchange_price")
  private Integer exchangePrice;

  /**
   * 商品价值
   */
  @ApiModelProperty("商品价值")
  @TableField("value")
  private Integer value;

  /**
   * 商品成本
   */
  @ApiModelProperty("商品成本")
  @TableField("cost")
  private Integer cost;

  @ApiModelProperty("回收折扣")
  @TableField("discount_rate")
  private BigDecimal discountRate;

  /**
   * 库存数量
   */
  @ApiModelProperty("库存数量")
  @TableField("quantity")
  private Integer quantity;

  /**
   * 已兑换量
   */
  @ApiModelProperty("已兑换量")
  @TableField("exchanged_qty")
  private Integer exchangedQty;

  /**
   * 兑换大厅是否展示，0不展示，1展示
   */
  @ApiModelProperty("兑换大厅是否展示，0不展示，1展示")
  @TableField("exchange_show")
  private Integer exchangeShow;


  @ApiModelProperty("商家信息")
  @TableField("merchant_info")
  private String merchantInfo;

  @ApiModelProperty("供应商ID")
  @TableField("supplier_id")
  private Long supplierId;

  @ApiModelProperty("采购链接")
  @TableField("shopping_link")
  private String shoppingLink;


  @ApiModelProperty("排序权重，越大越靠前")
  @TableField("sort_weight")
  private Integer sortWeight;

  /**
   * 是否多sku，0否，1是
   */
  @ApiModelProperty("是否多sku，0否，1是")
  @TableField("multi_sku")
  private Integer multiSku;

  /**
   * 规格描述
   */
  @ApiModelProperty("规格描述")
  @TableField("sku_prop")
  private String skuProp;


  /**
   * 上架状态;上架/下架
   */
  @ApiModelProperty("上架状态;上架/下架")
  @TableField("status")
  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
  private GoodsStatusEnum status;

  /**
   * 逻辑删除标识
   */
  @ApiModelProperty("逻辑删除标识")
  @TableField("is_deleted")
  @TableLogic
  private Integer isDeleted;

  /**
   * 创建时间
   */
  @ApiModelProperty("创建时间")
  @TableField("created_time")
  private Date createdTime;

  /**
   * 更新时间
   */
  @ApiModelProperty("更新时间")
  @TableField("updated_time")
  private Date updatedTime;
}
