/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.shopping.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 商品表实体类
 *
 * @author BladeX
 * @since 2022-02-13
 */
@Data
@TableName("t_goods")
@ApiModel(value = "Goods对象", description = "商品表")
public class Goods implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 商品ID
	 */
	@JsonSerialize(using = ToStringSerializer.class)
	@TableId(value = "id", type = IdType.ASSIGN_ID)
	@ApiModelProperty(value = "商品ID")
	private Long id;

	/**
	 * 商品编号
	 */
	@ApiModelProperty(value = "商品编号")
	private String productNo;

	/**
	 * 商品名称
	 */
	@ApiModelProperty(value = "商品名称")
	private String goodsName;
	/**
	 * 商品标签
	 */
	@ApiModelProperty(value = "商品标签")
	private String goodsLabel;
	/**
	 * 商品图片
	 */
	@ApiModelProperty(value = "商品图片")
	private String goodsImg;
	/**
	 * 分类ID
	 */
	@ApiModelProperty(value = "分类ID")
	private Long categoryId;
	/**
	 * 分类名称
	 */
	@ApiModelProperty(value = "分类名称")
	private String categoryName;
	/**
	 * 品牌ID
	 */
	@ApiModelProperty(value = "品牌ID")
	private Long brandId;
	/**
	 * 是否上架
	 */
	@ApiModelProperty(value = "是否上架")
	private Integer isSale;
	/**
	 * 是否推荐
	 */
	@ApiModelProperty(value = "是否推荐")
	private Integer isRecom;
	/**
	 * 是否热销
	 */
	@ApiModelProperty(value = "是否热销")
	private Integer isHot;
	/**
	 * 是否新品
	 */
	@ApiModelProperty(value = "是否新品")
	private Integer isNew;

	/**
	 * 是否酒票购买
	 */
	@ApiModelProperty(value = "是否酒票购买")
	private Integer isTicket;

	/**
	 * 销售价（购买价）
	 */
	@ApiModelProperty(value = "销售价（购买价）")
	private Double goodsPrice;
	/**
	 * 市场价（划掉的价格）
	 */
	@ApiModelProperty(value = "市场价（划掉的价格）")
	private Double marketPrice;
	/**
	 * 成本价
	 */
	@ApiModelProperty(value = "成本价")
	private Double costPrice;
	/**
	 * 酒票数
	 */
	@ApiModelProperty(value = "酒票数")
	private Double ticketNum;
	/**
	 * 预警库存
	 */
	@ApiModelProperty(value = "预警库存")
	private Integer warnStock;
	/**
	 * 商品总库存
	 */
	@ApiModelProperty(value = "商品总库存")
	private Integer goodsStock;
	/**
	 * 总销量
	 */
	@ApiModelProperty(value = "总销量")
	private Integer salesVolume;
	/**
	 * 商品类型
	 */
	@ApiModelProperty(value = "商品类型")
	private Integer goodsType;
	/**
	 * 是否包邮
	 */
	@ApiModelProperty(value = "是否包邮")
	private Integer isFreeShipping;
	/**
	 * 运费
	 */
	@ApiModelProperty(value = "运费")
	private Double freePrice;
	/**
	 * 商品相册
	 */
	@ApiModelProperty(value = "商品相册")
	private String gallery;
	/**
	 * 图文详情
	 */
	@ApiModelProperty(value = "图文详情")
	private String textImg;
	/**
	 * 是否有规格
	 */
	@ApiModelProperty(value = "是否有规格")
	private Integer isSpec;
	/**
	 * 商品视频
	 */
	@ApiModelProperty(value = "商品视频")
	private String goodsVideo;
	/**
	 * 商品描述
	 */
	@ApiModelProperty(value = "商品描述")
	private String goodsDesc;
	/**
	 * 商品状态，-1:违规 0:未审核 1:已审核
	 */
	@ApiModelProperty(value = "商品状态，-1:违规 0:未审核 1:已审核")
	private Integer goodsStatus;
	/**
	 * 排序
	 */
	@ApiModelProperty(value = "排序")
	private Integer sort;
	/**
	 * 删除标识   0正常  1逻辑删除
	 */
	@TableLogic
	@ApiModelProperty(value = "删除标识")
	private Integer isDeleted;
	/**
	 * 上架时间
	 */
	@ApiModelProperty(value = "上架时间")
	private Date saleTime;
	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**
	 * 更新时间
	 */
	@ApiModelProperty(value = "更新时间")
	private Date updateTime;


}
