/*
 * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.bean.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@TableName("tz_prod")
@Accessors(chain = true)
public class Product implements Serializable {

    private static final long serialVersionUID = -4644407386444894349L;
    /**
     * 商品ID
     */
    @TableId
    private Long prodId;

    /**
     * 商品编码（海博）
     */
    private Long hbSpuId;

    /**
     * 海博渠道编码
     */
    private String channelCode;

    /**
     * 店铺id
     */
    private Long shopId;

    /**
     * 在平台当中的分类id
     */
    private Long categoryId;

    /**
     * 在海博平台中的前台分类id
     */
    private String hbFrontCategoryId;

    /**
     * 在店铺当中的分类id
     */
    private Long shopCategoryId;

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

    /**
     * 原价
     */
    private Double oriPrice;

    /**
     * 现价
     */
    private Double price;

    /**
     * 简要描述,卖点等
     */
    private String brief;

    /**
     * 商品视频
     */
//    @JsonSerialize(using = ImgJsonSerializer.class)
    private String video;

    /**
     * 商品主图
     */
    @JsonSerialize(using = ImgJsonSerializer.class)
    private String pic;

    /**
     * 商品图片
     */
    private String imgs;

    /**
     * 默认是1，表示正常状态, -1表示删除, 0下架
     */
    private Integer status;
    private Integer isDelete;
    /**
     * 海博商品类型（1-普通商品，2-多规格商品）
     */
    private Integer hbStatus;

    /**
     * 品牌Id
     */
    private Long brandId;
    /**
     * 品牌名称
     */
    private String brandName;

    /**
     * 已经销售数量
     */
    private Integer soldNum;

    /**
     * 库存量
     */
    private Integer totalStocks;

    /**
     * 配送方式json
     */
    private String deliveryMode;

    /**
     * 运费模板id
     */
    private Long deliveryTemplateId;

    /**
     * 录入时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 详细描述
     */
    @TableField("`content`")
    private String content;

    /**
     * 上架时间
     */
    private Date putawayTime;

    /**
     * 商品类型(0普通商品 1拼团 2秒杀 3积分)
     */
    private Integer prodType;

    /**
     * 商品积分价格
     */
    private Integer scorePrice;

    /**
     * 活动id(对应prod_type)
     */
    private Long activityId;

    private String supId;
    /**
     * 版本
     */
    @Version
    private Integer version;

    /**
     * 事件状态
     */
    @TableField(exist = false)
    private Integer eventStatus;
    /**
     * 品牌
     */
    @TableField(exist = false)
    private Brand brand;

    /**
     * sku列表
     */
    @TableField(exist = false)
    private List<Sku> skuList;

    /**
     * 店铺名称
     */
    @TableField(exist = false)
    private String shopName;

    @TableField(exist = false)
    private Integer salesVolume;


    @Data
    public static class DeliveryModeVO {
        /**
         * 用户自提
         */
        @ApiModelProperty(value = "用户自提", required = true)
        private Boolean hasUserPickUp;

        /**
         * 店铺配送
         */
        @ApiModelProperty(value = "店铺配送", required = true)
        private Boolean hasShopDelivery;

        /**
         * 同城配送
         */
        @ApiModelProperty(value = "同城配送", required = true)
        private Boolean hasCityDelivery;

    }
}
