package com.younike.service.pojo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.younike.common.utils.poi.Excel;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import com.younike.common.core.domain.BaseEntity;

/**
 * 门店商品				对象 goods
 *
 * @author dail
 * @date 2022-05-24
 */
@Data
public class Goods extends BaseEntity {
    private static final long serialVersionUID=1L;

    /** 门店商品 ID  */
    @TableId(type = IdType.ASSIGN_UUID)
    private String goodsId;

    /** 门店基础信息表外键（表store) */
    private String storeId;

    /** 门店商品类型（001-代金券；002-团购套餐券；） */
    private String goodsType;

    /** 商品名称 */
    private String goodsName;

    /** 划线价格/门市价格 */
    private Long retailPrice;

    /** 商品售价 */
    private Long salePrice;

    /** 单人最多可购买券数量 */
    private Long maxBuyQtyPerPerson;

    /** 每单限用券数量 */
    private Long maxUseQtyPerOrder;

    /** 有效期开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String validFrom;

    /** 有效期结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String validUntil;

    /** 周末/节假日是否可用（0-通用；1-周末不可用；2-法定节假日不可用；3-周末/法定节假日都不可用；） */
    private String isHolidayRestricted;

    /** 适用范围，枚举：（0-全场通用；1-只适用于菜品；） */
    private String validScope;

    /** 使用规则/购买须知 文字描述 */
    private String commonRules;

    /** 库存值（商家预设库存） */
    private Long stockQty;

    /** 已售数量（初始值为0，每售出一笔，更新该字段） */
    private Long soldQty;

    /** 排序字段 
每次新增记录时，先查出已存在的sort_order值最大的那条记录，然后新增记录的sort_order值为该记录的值+1。
上移：取上一条记录排序号，将当前记录与上一条记录排序号调换位置
下移：取下一条记录排序号，将当前记录与下一条记录排序号调换位置 */
    private Long sortOrder;

    /** 商品上下架状态；枚举：上架、下架（默认下架） */
    private Long shelveStatus;

    /** 上下架操作人ID（关联表app_user)? */
    private Long shelveStatusUpdatedBy;

    /** 上下架时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String shelveStatusUpdatedTime;

    /** 删除标签(0-正常；1-已删除；默认0) */
    private String delFlag;

    /** 创建人ID */
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String createdTime;

    /** 更新/修改/删除人ID */
    private String updatedBy;

    /** 更新修改/删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String updatedTime;

    /** 版本号(默认0) */
    @Version
    private Long version;



}
