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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * Description 课后作业详情信息展示
 *
 * @author liujunchi
 * @date 2022-04-14
 */
@ApiModel("课后作业详情信息展示")
public class CourseHomeworkDetailVo {

    @ApiModelProperty("课后作业主键ID ")
    private Long id;

    @ApiModelProperty("课程编号ID")
    private Long courseScheduleId;

    @ApiModelProperty("课程组id")
    private Long courseGroupId;

    @ApiModelProperty("课程组名")
    private String courseGroupName;

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


    @ApiModelProperty("群聊id")
    private String imGroupId;


    @ApiModelProperty("学员人数")
    private Integer studentNum;

    @ApiModelProperty("学生课程作业id")
    private Long studentHomeworkId;

    @ApiModelProperty("课程类型 PRACTICE 陪练课 LIVE直播课")
    private CourseScheduleEnum courseType;

    @ApiModelProperty("上课日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date classDate;

    @ApiModelProperty("上课时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date startTime;

    @ApiModelProperty("下课时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date endTime;

    @ApiModelProperty("课程状态 NOT_START未开始 ING进行中 COMPLETE已完成 CANCEL已取消")
    private CourseScheduleEnum courseStatus;

    @ApiModelProperty("作业标题; ")
    private String title;

    @ApiModelProperty("作业内容 ")
    private String content;

    @ApiModelProperty("作业附件地址（多个用逗号分隔） ")
    private String attachments;

    @ApiModelProperty("学员提交的作品附件 ")
    private String studentAttachments;

    @ApiModelProperty("老师的作业点评 ")
    private String teacherReplied;

    @ApiModelProperty("作业提交时间 ")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date submitTime;

    @ApiModelProperty("声部名称")
    private String subjectName;

    @ApiModelProperty("学生id")
    private Long studentId;

    @ApiModelProperty("学员姓名")
    private String studentName;

    @ApiModelProperty("学员头像")
    private String studentAvatar;

    @ApiModelProperty("老师id")
    private Long teacherId;

    @ApiModelProperty("老师姓名")
    private String teacherName;

    @ApiModelProperty("老师头像")
    private String teacherAvatar;

    @ApiModelProperty("布置作业，0：未布置，1：已布置")
    private YesOrNoEnum decorateHomework;

    @ApiModelProperty("学生提交作业 0：未提交，1：已提交")
    private YesOrNoEnum submitHomework;

    @ApiModelProperty("点评作业 0：未点评，1：已点评")
    private YesOrNoEnum reviewHomework;

    @ApiModelProperty("作业布置时间")
    private Date decorateTime;

    @ApiModelProperty("作业过期 1：已过期 0：未过期")
    private Integer homeworkExpire;


    public String getCourseGroupName() {
        return courseGroupName;
    }

    public void setCourseGroupName(String courseGroupName) {
        this.courseGroupName = courseGroupName;
    }

    public Integer getClassNum() {
        return classNum;
    }

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

    public String getImGroupId() {
        return imGroupId;
    }

    public void setImGroupId(String imGroupId) {
        this.imGroupId = imGroupId;
    }

    public Integer getStudentNum() {
        return studentNum;
    }

    public void setStudentNum(Integer studentNum) {
        this.studentNum = studentNum;
    }

    public Integer getHomeworkExpire() {
        return homeworkExpire;
    }

    public void setHomeworkExpire(Integer homeworkExpire) {
        this.homeworkExpire = homeworkExpire;
    }

    public Long getStudentId() {
        return studentId;
    }

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

    public Long getTeacherId() {
        return teacherId;
    }

    public void setTeacherId(Long teacherId) {
        this.teacherId = teacherId;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public String getTeacherAvatar() {
        return teacherAvatar;
    }

    public void setTeacherAvatar(String teacherAvatar) {
        this.teacherAvatar = teacherAvatar;
    }

    public YesOrNoEnum getDecorateHomework() {
        return decorateHomework;
    }

    public void setDecorateHomework(YesOrNoEnum decorateHomework) {
        this.decorateHomework = decorateHomework;
    }

    public YesOrNoEnum getSubmitHomework() {
        return submitHomework;
    }

    public void setSubmitHomework(YesOrNoEnum submitHomework) {
        this.submitHomework = submitHomework;
    }

    public YesOrNoEnum getReviewHomework() {
        return reviewHomework;
    }

    public void setReviewHomework(YesOrNoEnum reviewHomework) {
        this.reviewHomework = reviewHomework;
    }

    public String getSubjectName() {
        return subjectName;
    }

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

    public String getStudentName() {
        return studentName;
    }

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

    public String getStudentAvatar() {
        return studentAvatar;
    }

    public void setStudentAvatar(String studentAvatar) {
        this.studentAvatar = studentAvatar;
    }

    public CourseScheduleEnum getCourseType() {
        return courseType;
    }

    public void setCourseType(CourseScheduleEnum courseType) {
        this.courseType = courseType;
    }

    public Date getClassDate() {
        return classDate;
    }

    public void setClassDate(Date classDate) {
        this.classDate = classDate;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public CourseScheduleEnum getCourseStatus() {
        return courseStatus;
    }

    public void setCourseStatus(CourseScheduleEnum courseStatus) {
        this.courseStatus = courseStatus;
    }

    public Long getCourseScheduleId() {
        return courseScheduleId;
    }

    public void setCourseScheduleId(Long courseScheduleId) {
        this.courseScheduleId = courseScheduleId;
    }

    public Long getId() {
        return id;
    }

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

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getAttachments() {
        return attachments;
    }

    public void setAttachments(String attachments) {
        this.attachments = attachments;
    }

    public String getStudentAttachments() {
        return studentAttachments;
    }

    public void setStudentAttachments(String studentAttachments) {
        this.studentAttachments = studentAttachments;
    }

    public String getTeacherReplied() {
        return teacherReplied;
    }

    public void setTeacherReplied(String teacherReplied) {
        this.teacherReplied = teacherReplied;
    }

    public Date getSubmitTime() {
        return submitTime;
    }

    public void setSubmitTime(Date submitTime) {
        this.submitTime = submitTime;
    }

    public Long getCourseGroupId() {
        return courseGroupId;
    }

    public void setCourseGroupId(Long courseGroupId) {
        this.courseGroupId = courseGroupId;
    }

    public Long getStudentHomeworkId() {
        return studentHomeworkId;
    }

    public void setStudentHomeworkId(Long studentHomeworkId) {
        this.studentHomeworkId = studentHomeworkId;
    }

    public Date getDecorateTime() {
        return decorateTime;
    }

    public void setDecorateTime(Date decorateTime) {
        this.decorateTime = decorateTime;
    }
}
