package com.younike.system.domain;

import com.younike.common.annotation.Excel;
import com.younike.common.core.domain.BaseEntity;
import com.younike.system.domain.vo.GoodsServerVO;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;

/**
 * 商品对象 goods
 * 
 * @author elev
 * @date 2022-01-06
 */
@Data
public class Goods extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** 商品ID */
    private Long goodsId;

    /** 店铺ID */
    @Excel(name = "店铺ID")
    private Long merchantId;

    /** 商品分类 */
    @Excel(name = "商品分类")
    private Long cateId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String name;

    /** 报价单位（code） */
    @Excel(name = "报价单位", readConverterExp = "c=ode")
    private String goodsUnit;

    /** 报价单位(code为099其他时，手填单位) */
    @Excel(name = "报价单位(code为099其他时，手填单位)")
    private String otherUnit;

    /** 单次服务标准时长（小时） */
    @Excel(name = "单次服务标准时长", readConverterExp = "小=时")
    private BigDecimal singleTime;

    /** 服务内容(富文本的，有图文结合显示) */
    @Excel(name = "服务内容(富文本的，有图文结合显示)")
    private String serviceDesc;

    /** 费用说明(富文本的，有图文结合显示) */
    @Excel(name = "费用说明(富文本的，有图文结合显示)")
    private String priceDesc;

    /** 商品金币 */
    @Excel(name = "商品金币")
    private BigDecimal coin;

    /** 评分 */
    @Excel(name = "评分")
    private BigDecimal score;

    /** 销量 */
    @Excel(name = "销量")
    private Long sales;

    /** 限购数量（-99不限购） */
    @Excel(name = "限购数量", readConverterExp = "-=99不限购")
    private Integer maxNum;

    /** 是否上架 0未上架 1已上架 2已售完 */
    @Excel(name = "是否上架 0未上架 1已上架 2已售完")
    private Integer isSale;

    /** 下架时间 */
    @Excel(name = "下架时间")
    private LocalDateTime unshelveTime;

    /** 下架原因 */
    @Excel(name = "下架原因")
    private String unshelveReason;

    /** 下标排序 */
    @Excel(name = "下标排序")
    private Integer sorting;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 最后登录IP */
    @Excel(name = "最后登录IP")
    private String loginIp;

    /** 最后登录时间 */
    @Excel(name = "最后登录时间")
    private LocalDateTime loginDate;

    /** 预留字段1 */
    @Excel(name = "预留字段1")
    private String column1;

    /** 预留字段2 */
    @Excel(name = "预留字段2")
    private String column2;

    /** 预留字段2 */
    @Excel(name = "预留字段2")
    private String column3;

    private String categoryName;
    private String images;
    private List<GoodsServerVO> goodsServerList;

    private Integer pageNum;
    private Integer pageSize;
    public boolean validPageParams(){
        return Objects.nonNull(this.pageNum) && Objects.nonNull(this.pageSize);
    }
}
