package com.qs.mp.admin.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.qs.mp.common.enums.CdKeyGroupGoodsTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @describe 兑换码关联商品表实体类
 * @auther quanshu
 * @create 2023-05-16 17:21:06
 */
@ApiModel("兑换码关联商品表")
@TableName("mp_cd_key_group_goods")
@Data
public class CdKeyGroupGoods implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 兑换码组id
     */
    @ApiModelProperty("兑换码组id")
    @TableField("group_id")
    private String groupId;

    /**
     * 商品名称
     */
    @ApiModelProperty("商品名称")
    @TableField("title")
    private String title;

    /**
     * 商品图片
     */
    @ApiModelProperty("商品图片")
    @TableField("pic_url")
    private String picUrl;

    /**
     * 商品类型 goods 实物商品 coupon优惠券 coin平台代币 coupon_pkg券包
     */
    @ApiModelProperty("商品类型 goods 实物商品 coupon优惠券 coin平台代币 coupon_pkg券包")
    @TableField("type")
    @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
    private CdKeyGroupGoodsTypeEnum type;

    /**
     * 商品关联id
     */
    @ApiModelProperty("商品入联id")
    @TableField("ref_id")
    private String refId;

    /**
     * 商品价值
     */
    @ApiModelProperty("商品价值")
    @TableField("value")
    private Integer value;

    /**
     * 逻辑删除标识
     */
    @ApiModelProperty("逻辑删除标记")
    @TableField("is_deleted")
    @TableLogic
    private Integer isDeleted;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @TableField("update_time")
    private Date updateTime;

    /**
     * 关联商品数量
     */
    @ApiModelProperty("关联商品数量")
    @TableField("quantity")
    private Integer quantity;


}