package com.cyksj.model.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ejlchina.searcher.bean.DbIgnore;
import com.ejlchina.searcher.bean.SearchBean;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author chan
 * @date 2022/9/26 4:58 PM
 */
@Getter
@Setter
@SearchBean(tables = "goods_don g",
        where = ":condition:")
public class GoodsDon extends BaseEntity {


    /**
     * 商品录入人
     */
    private String writer;

    /**
     * 标签
     */
    private String tags;

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

    /**
     * 缩略图
     */
    private String logo;

    /**
     * 背景图
     */
    private String img;

    /**
     * 视频封面
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String videoCover;


    /**
     * true 上架 / false 下架
     */
    private Boolean status;

    /**
     * 是否隐藏
     */
    private Boolean isHide;

    /**
     * true 存在 / false 删除
     */
    private Boolean deleted;

    /**
     * 详情
     */
    private String detail;

    /**
     * 描述
     */
    private String remark;

    /**
     * 1.虚拟，2.实物，3.潮玩，4.租赁,5.补差价
     */
    private Integer type;

    /**
     * 分类
     * 1、AI  2、流媒体
     */
    private Long category;

    @DbIgnore
    @TableField(exist = false)
    private List<Long> categoryList;

    /**
     * 二级分类
     * 虚物品 1邀请制 2非邀请制
     */
    private Integer secondType;

    private String banner;

    /**
     * 商品搭配图
     */
    private String matchImg;


    /**
     * 是否贴片 false
     */
    private Boolean isPatch;

    /**
     * H5标签
     */
    private String mobileTags;

    /**
     * 平台分销比例
     */
    private Integer rate;

    /**
     * 第二分销比例 不包含套餐
     */
    private Integer secondRate;

    /**
     * 排序
     */
    private Integer sortBy;

    /**
     * 虚拟销量
     */
    private Integer virtualSold;

    /**
     * 最小规格价格
     */
    private BigDecimal minPrice;

    /**
     * 最小规格价格月份
     */
    private Integer minMonths;

    /**
     * 最小规格 天数
     */
    private Integer minDays;

    /**
     * 最大规格价格
     */
    private BigDecimal maxPrice;

    /**
     * 最大规格价格月份
     */
    private Integer maxMonths;

    /**
     * 最大规格 天数
     */
    private Integer maxDays;

    /**
     * 付款说明
     */
    private String payDesc;

    /**
     * 购买说明
     */
    private String buyDesc;

    /**
     * 特殊类型
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private GoodsDon.SpecialType specialType;

    /**
     * 视频
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String video;

    /**
     * 推荐标题
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String recommendTitle;

    @TableField(exist = false)
    @DbIgnore
    private List<Long> recommendGoodsList;

    /**
     * 推荐平台
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String recommendGoods;

    @TableField(exist = false)
    @DbIgnore
    private BigDecimal price;

    @TableField(exist = false)
    @DbIgnore
    private Integer soldNum;

    @TableField(exist = false)
    @DbIgnore
    private Integer accountCount;

    /**
     * 是否是特定价格 规格平台
     */
    private Boolean isSp;

    /**
     * 是否有专属用户规格属性
     */
    private Boolean isOwns;

    /**
     * 是否参与分销 默认参与
     */
    private Boolean isDistribute;

    /**
     * 是否开启规格分销 默认未开启
     */
    private Boolean isSkuDistribute;

    /**
     * 是否是第三方商品
     */
    private Boolean isThirdGoods;

    /**
     * 用户端车票展示字段
     */
    private String showFieldInfo;

    @AllArgsConstructor
    @Getter
    public enum SpecialType {
        recharge("代充"),
        courseware("课程"),
        giftCard("礼品卡")
        ;

        private String desc;

    }
}
