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

import com.yonge.cooleshow.biz.dal.entity.Student;
import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

/**
 * @Author: liweifan
 * @Data: 2022/3/21 18:37
 */
@ApiModel(value = "StudentHomeVo对象", description = "学生主页基本信息返回")
public class StudentHomeVo extends Student {

    @ApiModelProperty("头像地址")
    private String heardUrl;
    @ApiModelProperty("学员昵称")
    private String username;
    @ApiModelProperty("会员剩余有效期天数")
    private Integer membershipDays;
    @ApiModelProperty("累计练习天数")
    private Integer exerciseDays;
    @ApiModelProperty("累计练习时长")
    private Double exerciseHours;
    @ApiModelProperty("累计评测次数")
    private Integer testingNum;
    @ApiModelProperty("已完成课时数")
    private Integer finshClassHours;
    @ApiModelProperty("剩余课时数")
    private Integer unfinshClassHours;
    @ApiModelProperty("关注老师数")
    private Integer starTeacherNum;
    @ApiModelProperty(value = "声部名称（支持多个，用逗号分隔） ")
    private String subjectName;
    @ApiModelProperty(value = "性别 0女 1男")
    private GenderEnum gender;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "真实姓名")
    private String realName;
    @ApiModelProperty(value = "身份证号码")
    private String idCardNo;
    @ApiModelProperty(value = "生日")
    private Date birthdate;
    @ApiModelProperty(value = "是否实名 0否 1是")
    private YesOrNoEnum isReal;
    @ApiModelProperty(value = "学生 STUDENT 老师 TEACHER 系统用户 SYSTEM")
    private String userType;
    @ApiModelProperty("专辑数 ")
    private Integer musicAlbumNum;
    @ApiModelProperty("曲谱数 ")
    private Integer musicSheetNum;
    @ApiModelProperty(value = "是否会员 0否 1是")
    private YesOrNoEnum isVip;

    public String getHeardUrl() {
        return heardUrl;
    }

    public void setHeardUrl(String heardUrl) {
        this.heardUrl = heardUrl;
    }

    public String getUsername() {
        return username;
    }

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

    public Date getBirthdate() {
        return birthdate;
    }

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

    public Integer getExerciseDays() {
        return exerciseDays;
    }

    public void setExerciseDays(Integer exerciseDays) {
        this.exerciseDays = exerciseDays;
    }

    public Double getExerciseHours() {
        return exerciseHours;
    }

    public void setExerciseHours(Double exerciseHours) {
        this.exerciseHours = exerciseHours;
    }

    public Integer getTestingNum() {
        return testingNum;
    }

    public void setTestingNum(Integer testingNum) {
        this.testingNum = testingNum;
    }

    public Integer getFinshClassHours() {
        return finshClassHours;
    }

    public void setFinshClassHours(Integer finshClassHours) {
        this.finshClassHours = finshClassHours;
    }

    public Integer getUnfinshClassHours() {
        return unfinshClassHours;
    }

    public void setUnfinshClassHours(Integer unfinshClassHours) {
        this.unfinshClassHours = unfinshClassHours;
    }

    public Integer getStarTeacherNum() {
        return starTeacherNum;
    }

    public void setStarTeacherNum(Integer starTeacherNum) {
        this.starTeacherNum = starTeacherNum;
    }

    public Integer getMembershipDays() {
        return membershipDays;
    }

    public void setMembershipDays(Integer membershipDays) {
        this.membershipDays = membershipDays;
    }

    public String getSubjectName() {
        return subjectName;
    }

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

    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 YesOrNoEnum getIsReal() {
        return isReal;
    }

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

    public String getUserType() {
        return userType;
    }

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

    public Integer getMusicAlbumNum() {
        return musicAlbumNum;
    }

    public void setMusicAlbumNum(Integer musicAlbumNum) {
        this.musicAlbumNum = musicAlbumNum;
    }

    public Integer getMusicSheetNum() {
        return musicSheetNum;
    }

    public void setMusicSheetNum(Integer musicSheetNum) {
        this.musicSheetNum = musicSheetNum;
    }

    public YesOrNoEnum getIsVip() {
        return isVip;
    }

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