package com.yonge.cooleshow.auth.api.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.springframework.format.annotation.DateTimeFormat;

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


@ApiModel(value = "二维码登录对象")
public class QRLoginDto implements Serializable {
	private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "二维码登录code")
    private String code;

    @ApiModelProperty(value = "过期时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date expireTime;

    @ApiModelProperty(value = "状态 no_scan 未扫码 scanned 已扫码 succeed 登录成功 filed 登录失败")
    private String codeStatus;

	@ApiModelProperty(value = "登录的客户端")
	private String clientId;

	@ApiModelProperty(value = "登录的客户端Secret")
	private String clientSecret;

    @ApiModelProperty(value = "登录用户 STUDENT 学生 TEACHER 老师")
	private String userType;

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

    @ApiModelProperty(value = "登录token")
    private Object authentication;

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public Date getExpireTime() {
		return expireTime;
	}

	public void setExpireTime(Date expireTime) {
		this.expireTime = expireTime;
	}

	public String getCodeStatus() {
		return codeStatus;
	}

	public void setCodeStatus(String codeStatus) {
		this.codeStatus = codeStatus;
	}

	public String getClientId() {
		return clientId;
	}

	public void setClientId(String clientId) {
		this.clientId = clientId;
	}

	public String getClientSecret() {
		return clientSecret;
	}

	public void setClientSecret(String clientSecret) {
		this.clientSecret = clientSecret;
	}

	public String getUserType() {
		return userType;
	}

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

	public Object getAuthentication() {
		return authentication;
	}

	public void setAuthentication(Object authentication) {
		this.authentication = authentication;
	}

	public String getPhone() {
		return phone;
	}

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

	@Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

}