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

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

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

/**
 * @author hgw
 * Created by 2022-04-06
 */
@ApiModel(value = "LiveCourseInfoVo", description = "直播课详情")
public class LiveCourseInfoVo extends CourseGroupVo implements Serializable {

    @ApiModelProperty(value = "教学计划")
    private List<PlanVo> planList;

    @ApiModelProperty(value = "学员列表")
    private List<CourseBuyStudentVo> studentList;

    @ApiModelProperty(value = "true 自己的课,false 其他老师的课程")
    private Boolean myself;

    @ApiModelProperty(value = "是否审核时可见 （0:否  1：是）")
    private YesOrNoEnum auditVersion = YesOrNoEnum.NO;

    @ApiModelProperty("学位认证 0:未认证 1：已认证 ")
    private YesOrNoEnum degreeFlag;


    @ApiModelProperty("教师资格认证 0：未认证 1：已认证 ")
    private YesOrNoEnum teacherFlag;

    public YesOrNoEnum getDegreeFlag() {
        return degreeFlag;
    }

    public void setDegreeFlag(YesOrNoEnum degreeFlag) {
        this.degreeFlag = degreeFlag;
    }

    public YesOrNoEnum getTeacherFlag() {
        return teacherFlag;
    }

    public void setTeacherFlag(YesOrNoEnum teacherFlag) {
        this.teacherFlag = teacherFlag;
    }

    public YesOrNoEnum getAuditVersion() {
        return auditVersion;
    }

    public void setAuditVersion(YesOrNoEnum auditVersion) {
        this.auditVersion = auditVersion;
    }

    public Boolean getMyself() {
        return myself;
    }

    public void setMyself(Boolean myself) {
        this.myself = myself;
    }


    @ApiModel(value = "PlanVo", description = "教学计划")
    public static class PlanVo extends CourseTimeEntity implements Serializable {

        @ApiModelProperty(value = "教学计划id")
        private Long planId;

        @ApiModelProperty(value = "课堂编号-第几堂课")
        private Integer classNum;

        @ApiModelProperty(value = "课程id")
        private Long courseId;

        @ApiModelProperty(value = "教学计划/最多200字")
        private String plan;

        @ApiModelProperty(value = "房间uid")
        private String roomUid;

        @ApiModelProperty(value = "直播状态 0未开始 1已开始 2已结束")
        private Integer liveState;

        public Long getId() {
            return planId;
        }

        public void setId(Long id) {
            this.planId = id;
        }

        public Integer getClassNum() {
            return classNum;
        }

        public void setClassNum(Integer classNum) {
            this.classNum = classNum;
        }

        public Long getPlanId() {
            return planId;
        }

        public void setPlanId(Long planId) {
            this.planId = planId;
        }

        public Long getCourseId() {
            return courseId;
        }

        public void setCourseId(Long courseId) {
            this.courseId = courseId;
        }

        public String getPlan() {
            return plan;
        }

        public void setPlan(String plan) {
            this.plan = plan;
        }

        public String getRoomUid() {
            return roomUid;
        }

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

        public Integer getLiveState() {
            return liveState;
        }

        public void setLiveState(Integer liveState) {
            this.liveState = liveState;
        }
    }

    @ApiModel(value = "CourseBuyStudentVo", description = "学员列表")
    public static class CourseBuyStudentVo implements Serializable {

        @ApiModelProperty(value = "学员id")
        private Long studentId;

        @ApiModelProperty(value = "学员名称")
        private String studentName;

        @ApiModelProperty(value = "昵称")
        private String userName;

        @ApiModelProperty(value = "头像")
        private String avatar;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @ApiModelProperty(value = "购买时间")
        private Date createTime;

        public Long getStudentId() {
            return studentId;
        }

        public void setStudentId(Long studentId) {
            this.studentId = studentId;
        }

        public String getStudentName() {
            return studentName;
        }

        public void setStudentName(String studentName) {
            this.studentName = studentName;
        }

        public String getUserName() {
            return userName;
        }

        public void setUserName(String userName) {
            this.userName = userName;
        }

        public String getAvatar() {
            return avatar;
        }

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

        public Date getCreateTime() {
            return createTime;
        }

        public void setCreateTime(Date createTime) {
            this.createTime = createTime;
        }
    }

    public List<PlanVo> getPlanList() {
        return planList;
    }

    public void setPlanList(List<PlanVo> planList) {
        this.planList = planList;
    }

    public List<CourseBuyStudentVo> getStudentList() {
        return studentList;
    }

    public void setStudentList(List<CourseBuyStudentVo> studentList) {
        this.studentList = studentList;
    }
}
