package com.qs.mp.user.domain;

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.TableName;
import com.qs.mp.common.enums.PrizeStorageInTypeEnum;
import com.qs.mp.common.enums.PrizeStorageStatusEnum;
import java.io.Serializable;
import java.util.Date;

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

/**
 * @describe 用户实物奖品仓库实体类
 * @auther quanshu
 * @create 2022-03-07 20:45:43
 */
@TableName("mp_user_prize_storage")
@Data
@ApiModel(value = "用户实物奖品仓库实体类")
public class UserPrizeStorage implements Serializable {

  private static final long serialVersionUID = 1L;

  /**
   * 主键
   */
  @TableId(value = "storage_id", type = IdType.INPUT)
  @ApiModelProperty("主键")
  private String storageId;

  /**
   * 用户ID
   */
  @TableField("user_id")
  @ApiModelProperty("用户ID")
  private Long userId;

  /**
   * 商品ID
   */
  @TableField("goods_id")
  @ApiModelProperty("商品ID")
  private Long goodsId;

  /**
   * sku ID
   */
  @TableField("sku_id")
  @ApiModelProperty("sku ID")
  private Long skuId;

  /**
   * sku 属性
   */
  @TableField("properties")
  @ApiModelProperty("sku 属性")
  private String properties;

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

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

  /**
   * 商品数
   */
  @TableField("goods_num")
  @ApiModelProperty("商品数")
  private Integer goodsNum;

  /**
   * 入库类型;1盲票兑奖、2盲豆兑换、3营销活动
   */
  @TableField("in_type")
  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
  @ApiModelProperty("入库类型;1盲票兑奖、2盲豆兑换,3营销活动")
  private PrizeStorageInTypeEnum inType;

  /**
   * 关联业务ID
   */
  @TableField("ref_id")
  @ApiModelProperty("关联业务ID")
  private String refId;

  /**
   * 状态;1待提货、2已提货,3已回收
   */
  @TableField("status")
  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
  @ApiModelProperty("状态;1待提货、2已提货,3已回收")
  private PrizeStorageStatusEnum status;

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

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


}
