package com.yonge.cooleshow.biz.dal.dto.search;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.common.enums.ConditionMethodEnum;
import com.yonge.toolset.base.page.QueryInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * @Author: liweifan
 * @Data: 2022-08-18 10:03:38
 */
@ApiModel(value = "UserFirstTimeSearch对象", description = "时间记录表查询对象")
public class UserFirstTimeSearch extends QueryInfo{
	private static final long serialVersionUID = 1L;

	@ApiModelProperty("用户id ")
	private Long userId;
	@ApiModelProperty("用户类型：STUDENT 学生 TEACHER 老师 ")
	private String userType;
	@ApiModelProperty("时间类型：ENTRY 达人认证 LIVEING 开通直播 ")
	private String timeType;
	@ApiModelProperty(value = "活动开始时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date startTime;
	@ApiModelProperty(value = "活动结束时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date endTime;

	// 活动ID
	private Long activityId;
	// 活动参与用户ID
	private List<Long> userIds;
	// 达标活动计算方式
	private ConditionMethodEnum calculationMethod;

	public Long getUserId() {
		return userId;
	}

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

	public String getUserType() {
		return userType;
	}

	public void setUserType(String userType) {
		this.userType = userType;
	}

	public String getTimeType() {
		return timeType;
	}

	public void setTimeType(String timeType) {
		this.timeType = timeType;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public Long getActivityId() {
		return activityId;
	}

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

	public List<Long> getUserIds() {
		return userIds;
	}

	public void setUserIds(List<Long> userIds) {
		this.userIds = userIds;
	}

	public ConditionMethodEnum getCalculationMethod() {
		return calculationMethod;
	}

	public void setCalculationMethod(ConditionMethodEnum calculationMethod) {
		this.calculationMethod = calculationMethod;
	}

	public UserFirstTimeSearch activityId(Long activityId) {
		this.activityId = activityId;
		return this;
	}

	public UserFirstTimeSearch userIds(List<Long> userIds) {
		this.userIds = userIds;
		return this;
	}
}