package com.ym.mec.biz.dal.dto;

import com.ym.mec.biz.dal.entity.ClassGroup;
import com.ym.mec.biz.dal.entity.CourseSchedule;
import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
import com.ym.mec.biz.dal.enums.CourseStatusEnum;
import com.ym.mec.biz.dal.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

/**
 * @Author Joburgess
 * @Date 2019/9/10
 */
public class TeacherAttendanceDto {

    @ApiModelProperty(value = "课程计划ID",required = false)
    private Long courseScheduleId;

    @ApiModelProperty(value = "课程名称")
    private String courseScheduleName;

    @ApiModelProperty(value = "上课日期",required = false)
    private java.util.Date classDate;

    @ApiModelProperty(value = "上课时间",required = false)
    private java.util.Date startClassTime;

    @ApiModelProperty(value = "结束时间",required = false)
    private java.util.Date endClassTime;

    @ApiModelProperty(value = "班级ID",required = false)
    private Integer classId;

    @ApiModelProperty(value = "班级名称",required = false)
    private String className;

    @ApiModelProperty(value = "班级类型",required = false)
    private ClassGroupTypeEnum classType;

    private CourseSchedule.CourseScheduleType courseType;

    @ApiModelProperty(value = "乐团ID",required = false)
    private String musicGroupId;

    @ApiModelProperty(value = "乐团名称",required = false)
    private String musicGroupName;

    @ApiModelProperty(value = "学校ID",required = false)
    private Long schoolId;

    @ApiModelProperty(value = "学校地址",required = false)
    private String address;

    @ApiModelProperty(value = "学校经纬度",required = false)
    private String longitudeAndLatitude;

    /** 课程状态 */
    @ApiModelProperty(value = "课程状态  NOT_START未开始，SIGN_IN已签到，SIGN_OUT已签退",required = false)
    private CourseStatusEnum courseStatus;

    @ApiModelProperty(value = "服务器当前时间",required = false)
    private Date currentTime;

    @ApiModelProperty(value = "教师正常签到提前时间(分钟)",required = false)
    private Integer advanceSignInMinutes;

    private Integer advanceSignOutMinutes;

    @ApiModelProperty(value = "老师可打卡范围,单位米")
    private Integer attendanceRange;

    @ApiModelProperty(value = "教师名称")
    private String teacherName;

    @ApiModelProperty(value = "签到时间")
    private String signInTime;

    @ApiModelProperty(value = "只能正常签到")
    private YesOrNoEnum onlyNormal;

    @ApiModelProperty(value = "总统课次",required = false)
    private Integer totalClassTimes;

    @ApiModelProperty(value = "当前课次",required = false)
    private Integer currentClassTimes;

    @ApiModelProperty(value = "学生数量")
    private Integer studentNum;

    @ApiModelProperty(value = "是否是第一次进行学生点名")
    private int studentAttendanceIsFirstTime;

    @ApiModelProperty(value = "能否布置作业")
    private int enableAssignHomework;

    private Integer enableStudentAttendanceTimeRange;

    private Integer enableStudentAttendanceTimeRangeVip;

    public CourseSchedule.CourseScheduleType getCourseType() {
        return courseType;
    }

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

    public int getEnableAssignHomework() {
        return enableAssignHomework;
    }

    public void setEnableAssignHomework(int enableAssignHomework) {
        this.enableAssignHomework = enableAssignHomework;
    }

    public Integer getEnableStudentAttendanceTimeRangeVip() {
        return enableStudentAttendanceTimeRangeVip;
    }

    public void setEnableStudentAttendanceTimeRangeVip(Integer enableStudentAttendanceTimeRangeVip) {
        this.enableStudentAttendanceTimeRangeVip = enableStudentAttendanceTimeRangeVip;
    }

    public int getStudentAttendanceIsFirstTime() {
        return studentAttendanceIsFirstTime;
    }

    public void setStudentAttendanceIsFirstTime(int studentAttendanceIsFirstTime) {
        this.studentAttendanceIsFirstTime = studentAttendanceIsFirstTime;
    }

    public Integer getEnableStudentAttendanceTimeRange() {
        return enableStudentAttendanceTimeRange;
    }

    public void setEnableStudentAttendanceTimeRange(Integer enableStudentAttendanceTimeRange) {
        this.enableStudentAttendanceTimeRange = enableStudentAttendanceTimeRange;
    }

    public Integer getStudentNum() {
        return studentNum;
    }

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

    public Integer getTotalClassTimes() {
        return totalClassTimes;
    }

    public void setTotalClassTimes(Integer totalClassTimes) {
        this.totalClassTimes = totalClassTimes;
    }

    public Integer getCurrentClassTimes() {
        return currentClassTimes;
    }

    public void setCurrentClassTimes(Integer currentClassTimes) {
        this.currentClassTimes = currentClassTimes;
    }

    public YesOrNoEnum getOnlyNormal() {
        return onlyNormal;
    }

    public void setOnlyNormal(YesOrNoEnum onlyNormal) {
        this.onlyNormal = onlyNormal;
    }

    public String getSignInTime() {
        return signInTime;
    }

    public void setSignInTime(String signInTime) {
        this.signInTime = signInTime;
    }

    public String getTeacherName() {
        return teacherName;
    }

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

    public Integer getAdvanceSignOutMinutes() {
        return advanceSignOutMinutes;
    }

    public void setAdvanceSignOutMinutes(Integer advanceSignOutMinutes) {
        this.advanceSignOutMinutes = advanceSignOutMinutes;
    }

    public String getCourseScheduleName() {
        return courseScheduleName;
    }

    public void setCourseScheduleName(String courseScheduleName) {
        this.courseScheduleName = courseScheduleName;
    }

    public Integer getAttendanceRange() {
        return attendanceRange;
    }

    public void setAttendanceRange(Integer attendanceRange) {
        this.attendanceRange = attendanceRange;
    }

    public Integer getAdvanceSignInMinutes() {
        return advanceSignInMinutes;
    }

    public void setAdvanceSignInMinutes(Integer advanceSignInMinutes) {
        this.advanceSignInMinutes = advanceSignInMinutes;
    }

    public Date getCurrentTime() {
        return currentTime;
    }

    public void setCurrentTime(Date currentTime) {
        this.currentTime = currentTime;
    }

    public CourseStatusEnum getCourseStatus() {
        return courseStatus;
    }

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

    public Long getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(Long schoolId) {
        this.schoolId = schoolId;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getLongitudeAndLatitude() {
        return longitudeAndLatitude;
    }

    public void setLongitudeAndLatitude(String longitudeAndLatitude) {
        this.longitudeAndLatitude = longitudeAndLatitude;
    }

    public Long getCourseScheduleId() {
        return courseScheduleId;
    }

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

    public Date getClassDate() {
        return classDate;
    }

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

    public Date getStartClassTime() {
        return startClassTime;
    }

    public void setStartClassTime(Date startClassTime) {
        this.startClassTime = startClassTime;
    }

    public Date getEndClassTime() {
        return endClassTime;
    }

    public void setEndClassTime(Date endClassTime) {
        this.endClassTime = endClassTime;
    }

    public Integer getClassId() {
        return classId;
    }

    public void setClassId(Integer classId) {
        this.classId = classId;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }


    public ClassGroupTypeEnum getClassType() {
        return classType;
    }

    public void setClassType(ClassGroupTypeEnum classType) {
        this.classType = classType;
    }

    public String getMusicGroupId() {
        return musicGroupId;
    }

    public void setMusicGroupId(String musicGroupId) {
        this.musicGroupId = musicGroupId;
    }

    public String getMusicGroupName() {
        return musicGroupName;
    }

    public void setMusicGroupName(String musicGroupName) {
        this.musicGroupName = musicGroupName;
    }
}
