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

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.common.enums.RewardTypeEnum;
import com.yonge.cooleshow.common.enums.UnitEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @Author: liweifan
 * @Data: 2022-08-04 10:19:49
 */
@ApiModel(value = "UserRewardVo对象", description = "获奖名单")
public class UserRewardVo implements Serializable {


	@ApiModelProperty("用户id")
	private Long userId;

	@ApiModelProperty("真实姓名")
	private String realName;

	@ApiModelProperty("昵称")
	private String username;

	@ApiModelProperty("手机号")
	private String phone;

	@ApiModelProperty("发奖时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date  createTime;

	@ApiModelProperty("获奖/达标时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date winningTime;

	@ApiModelProperty("评测时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date evaluationTime;

	@ApiModelProperty("分数 ")
	@TableField(value = "score_")
	private Double score;

	@ApiModelProperty("次数")
	@TableField(value = "times_")
	private int times;

	@ApiModelProperty("奖品名 逗号隔开")
	private String rewardNames;

	// 分享活动拓展信息
	@ApiModelProperty("数量")
	private Long amount;
	@ApiModelProperty("购买内容")
	private RewardTypeEnum rewardType;
	@ApiModelProperty("单位 ")
	private UnitEnum unit;
	@ApiModelProperty("关联老师 ")
	private String teacherName;
	@ApiModelProperty("关联老师ID ")
	private String teacherIds;
	@ApiModelProperty("活动分享类型 ")
	private String shareType;
	@ApiModelProperty(hidden = true)
	private String teacherId;

	public Long getAmount() {
		return amount;
	}

	public void setAmount(Long amount) {
		this.amount = amount;
	}

	public Long getUserId() {
		return userId;
	}

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

	public String getRealName() {
		return realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public Date getCreateTime() {
		return createTime;
	}

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

	public String getRewardNames() {
		return rewardNames;
	}

	public void setRewardNames(String rewardNames) {
		this.rewardNames = rewardNames;
	}

	public RewardTypeEnum getRewardType() {
		return rewardType;
	}

	public void setRewardType(RewardTypeEnum rewardType) {
		this.rewardType = rewardType;
	}

	public UnitEnum getUnit() {
		return unit;
	}

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

	public String getTeacherName() {
		return teacherName;
	}

	public void setTeacherName(String teacherName) {
		this.teacherName = teacherName;
	}

	public String getTeacherId() {
		return teacherId;
	}

	public void setTeacherId(String teacherId) {
		this.teacherId = teacherId;
	}

	public String getShareType() {
		return shareType;
	}

	public void setShareType(String shareType) {
		this.shareType = shareType;
	}

	public String getTeacherIds() {
		return teacherIds;
	}

	public void setTeacherIds(String teacherIds) {
		this.teacherIds = teacherIds;
	}

	public Date getEvaluationTime() {
		return evaluationTime;
	}

	public void setEvaluationTime(Date evaluationTime) {
		this.evaluationTime = evaluationTime;
	}

	public Date getWinningTime() {
		return winningTime;
	}

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

	public Double getScore() {
		return score;
	}

	public void setScore(Double score) {
		this.score = score;
	}

	public int getTimes() {
		return times;
	}

	public void setTimes(int times) {
		this.times = times;
	}

	public UserRewardVo teacherName(String teacherName) {
		this.teacherName = teacherName;
		return this;
	}

	public UserRewardVo rewardType(RewardTypeEnum rewardType) {
		this.rewardType = rewardType;
		return this;
	}

	public UserRewardVo shareType(String shareType) {
		this.shareType = shareType;
		return this;
	}

	public UserRewardVo amount(Long amount) {
		this.amount = amount;
		return this;
	}

	public UserRewardVo score(Double score) {
		this.score = score;
		return this;
	}

	public UserRewardVo times(int times) {
		this.times = times;
		return this;
	}
}