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

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.biz.dal.entity.Student;
import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
import com.yonge.cooleshow.common.enums.UserStatusEnum;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;

/**
 * @Author: liweifan
 * @Data: 2022/3/24 17:22
 */
@ApiModel(value = "StudentVo对象", description = "学生表")
public class StudentVo extends Student {
    @ApiModelProperty("头像地址")
    private String avatar;
    @ApiModelProperty("昵称")
    private String username;
    @ApiModelProperty(value = "性别 0女 1男")
    private GenderEnum gender;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "是否实名 0否 1是")
    private YesOrNoEnum isReal;
    @ApiModelProperty(value = "是否绑卡 0否 1是")
    private YesOrNoEnum isBank;
    @ApiModelProperty(value = "真实姓名")
    private String realName;
    @ApiModelProperty(value = "身份证号码")
    private String idCardNo;
    @ApiModelProperty(value = "出生日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthdate;
    @ApiModelProperty(value = "年龄")
    private Integer age;
    @ApiModelProperty(value = "是否会员 0否 1是")
    private YesOrNoEnum isVip;
    @ApiModelProperty(value = "声部名称（支持多个，用逗号分隔） ")
    private String subjectName;
    @ApiModelProperty(value = "学生 STUDENT 老师 TEACHER 系统用户 STSTEM")
    private String userType;

    @ApiModelProperty(value = "是否注销 0否 1是")
    private YesOrNoEnum delFlag;

    @ApiModelProperty(value = "用户状态 NORMAL-正常   LOCKED-冻结  CLOSED-关闭")
    private UserStatusEnum userStatus;

    public YesOrNoEnum getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(YesOrNoEnum delFlag) {
        this.delFlag = delFlag;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public String getUsername() {
        return username;
    }

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

    public GenderEnum getGender() {
        return gender;
    }

    public void setGender(Object gender) {
        if(gender instanceof GenderEnum ){
            this.gender = (GenderEnum) gender;
        }else if (null != gender) {
            this.gender = GenderEnum.valueOf(Integer.parseInt(gender.toString()));
        }
    }

    

    public String getPhone() {
        return phone;
    }

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

    public String getRealName() {
        return realName;
    }

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

    public String getIdCardNo() {
        return idCardNo;
    }

    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }

    public Date getBirthdate() {
        return birthdate;
    }

    public void setBirthdate(Date birthdate) {
        this.birthdate = birthdate;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public YesOrNoEnum getIsReal() {
        return isReal;
    }

    public void setIsReal(YesOrNoEnum isReal) {
        this.isReal = isReal;
    }

    public YesOrNoEnum getIsBank() {
        return isBank;
    }

    public void setIsBank(YesOrNoEnum isBank) {
        this.isBank = isBank;
    }

    public YesOrNoEnum getIsVip() {
        return isVip;
    }

    public void setIsVip(YesOrNoEnum isVip) {
        this.isVip = isVip;
    }

    public String getSubjectName() {
        return subjectName;
    }

    public void setSubjectName(String subjectName) {
        this.subjectName = subjectName;
    }

    public String getUserType() {
        return userType;
    }

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

	public UserStatusEnum getUserStatus() {
		return userStatus;
	}

	public void setUserStatus(UserStatusEnum userStatus) {
		this.userStatus = userStatus;
	}
}
