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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.biz.dal.entity.Teacher;
import com.yonge.cooleshow.biz.dal.entity.TeacherStyleVideo;
import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
import com.yonge.cooleshow.biz.dal.enums.GenderEnum;
import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @Author: liweifan
 * @Data: 2022/3/21 18:37
 */
@ApiModel(value = "TeacherHomeVo对象", description = "老师主页基本信息返回")
public class TeacherHomeVo extends Teacher implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("头像地址")
    private String heardUrl;
    @ApiModelProperty("老师昵称")
    private String username;
    @ApiModelProperty("星级")
    private Integer starGrade;
    @ApiModelProperty("粉丝数")
    private Integer fansNum;
    @ApiModelProperty("已上课时")
    private Integer expTime;
    @ApiModelProperty("未上课时")
    private Integer unExpTime;
    @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 = "出生日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthdate;
    @ApiModelProperty("老师入驻状态 0、未申请  UNPAALY、未申请 DOING、审核中 PASS、通过 UNPASS、不通过")
    private AuthStatusEnum entryStatus;
    @ApiModelProperty("音乐人审核状态  0、未申请 UNPAALY、未申请 DOING、审核中 PASS、通过 UNPASS、不通过")
    private AuthStatusEnum musicianAuthStatus;
    @ApiModelProperty("是否有直播权限 0 否 1 是")
    private YesOrNoEnum liveFlag;
    @ApiModelProperty(value = "是否实名 0否 1是")
    private YesOrNoEnum isReal;
    @ApiModelProperty(value = "是否绑卡 0否 1是")
    private YesOrNoEnum isBank;
    @ApiModelProperty(value = "老师是否在直播中 0否 1是")
    private YesOrNoEnum liveing;
    @ApiModelProperty(value = "直播间房号")
    private String roomUid;
    @ApiModelProperty(value = "是否关注 0否 1是")
    private YesOrNoEnum isStar;
    @ApiModelProperty(value = "老师风采视频")
    private List<TeacherStyleVideo> styleVideo;

    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 Integer getStarGrade() {
        return starGrade;
    }

    public void setStarGrade(Integer starGrade) {
        this.starGrade = starGrade;
    }

    public Integer getFansNum() {
        return fansNum;
    }

    public void setFansNum(Integer fansNum) {
        this.fansNum = fansNum;
    }

    public Integer getExpTime() {
        return expTime;
    }

    public void setExpTime(Integer expTime) {
        this.expTime = expTime;
    }

    public Integer getUnExpTime() {
        return unExpTime;
    }

    public void setUnExpTime(Integer unExpTime) {
        this.unExpTime = unExpTime;
    }

    public AuthStatusEnum getEntryStatus() {
        return entryStatus;
    }

    public void setEntryStatus(AuthStatusEnum entryStatus) {
        this.entryStatus = entryStatus;
    }

    public AuthStatusEnum getMusicianAuthStatus() {
        return musicianAuthStatus;
    }

    public void setMusicianAuthStatus(AuthStatusEnum musicianAuthStatus) {
        this.musicianAuthStatus = musicianAuthStatus;
    }

    public YesOrNoEnum getLiveFlag() {
        return liveFlag;
    }

    public void setLiveFlag(YesOrNoEnum liveFlag) {
        this.liveFlag = liveFlag;
    }

    public String getSubjectName() {
        return subjectName;
    }

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

    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 GenderEnum getGender() {
        return gender;
    }

    public void setGender(GenderEnum gender) {
        this.gender = gender;
    }

    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 YesOrNoEnum getLiveing() {
        return liveing;
    }

    public void setLiveing(YesOrNoEnum liveing) {
        this.liveing = liveing;
    }

    public String getRoomUid() {
        return roomUid;
    }

    public void setRoomUid(String roomUid) {
        this.roomUid = roomUid;
    }

    public List<TeacherStyleVideo> getStyleVideo() {
        return styleVideo;
    }

    public void setStyleVideo(List<TeacherStyleVideo> styleVideo) {
        this.styleVideo = styleVideo;
    }

    public YesOrNoEnum getIsStar() {
        return isStar;
    }

    public void setIsStar(YesOrNoEnum isStar) {
        this.isStar = isStar;
    }
}
