package com.yonge.cooleshow.biz.dal.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yonge.cooleshow.biz.dal.enums.activity.ActivityRankingRuleEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 活动用户获奖表
 */
@TableName("activity_user_reward")
@ApiModel(value = "ActivityUserReward对象", description = "活动用户获奖表")
public class ActivityUserReward implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键 ")
    @TableId(value = "id_", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("活动id ")
    @TableField(value = "activity_id_")
    private Long activityId;
    @ApiModelProperty("活动具体项目id ")
    @TableField(value = "biz_id_")
    private Long bizId;
    @ApiModelProperty("用户id ")
    @TableField(value = "user_id_")
    private Long userId;
    @ApiModelProperty("奖品id ")
    @TableField(value = "reward_id_")
    private Long rewardId;
    @ApiModelProperty("是否成功发放 0 否 1 是")
    @TableField(value = "grant_flag_")
    private Integer grantFlag;
    @ApiModelProperty("是否领取奖品 0 否 1 是 ")
    @TableField(value = "receive_flag_")
    private Integer receiveFlag;
    @ApiModelProperty("创建时间 ")
    @TableField(value = "create_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;
    @ApiModelProperty("更新时间 ")
    @TableField(value = "update_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;

    @ApiModelProperty("获奖时间 ")
    @TableField(value = "winning_time_")
    private Date winningTime;


    @ApiModelProperty("领奖时间 ")
    @TableField(value = "receive_time_")
    private Date receiveTime;

    @ApiModelProperty("奖品单位 同奖品表")
    @TableField(value = "unit_")
    private String unit;

    @ApiModelProperty("活动排名")
    @TableField(value = "ranking_")
    private Integer ranking;


    @ApiModelProperty("活动排名规则")
    @TableField(value = "ranking_rule_")
    private ActivityRankingRuleEnum rankingRule;

    public Date getReceiveTime() {
        return receiveTime;
    }

    public void setReceiveTime(Date receiveTime) {
        this.receiveTime = receiveTime;
    }

    public Integer getRanking() {
        return ranking;
    }

    public void setRanking(Integer ranking) {
        this.ranking = ranking;
    }

    public ActivityRankingRuleEnum getRankingRule() {
        return rankingRule;
    }

    public void setRankingRule(ActivityRankingRuleEnum rankingRule) {
        this.rankingRule = rankingRule;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getActivityId() {
        return activityId;
    }

    public void setActivityId(Long activityId) {
        this.activityId = activityId;
    }

    public Long getBizId() {
        return bizId;
    }

    public void setBizId(Long bizId) {
        this.bizId = bizId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getRewardId() {
        return rewardId;
    }

    public void setRewardId(Long rewardId) {
        this.rewardId = rewardId;
    }

    public Integer getGrantFlag() {
        return grantFlag;
    }

    public void setGrantFlag(Integer grantFlag) {
        this.grantFlag = grantFlag;
    }

    public Integer getReceiveFlag() {
        return receiveFlag;
    }

    public void setReceiveFlag(Integer receiveFlag) {
        this.receiveFlag = receiveFlag;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getWinningTime() {
        return winningTime;
    }

    public void setWinningTime(Date winningTime) {
        this.winningTime = winningTime;
    }
}