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

import com.fasterxml.jackson.annotation.JsonInclude;
import com.ym.mec.auth.api.entity.SysUser;
import com.ym.mec.biz.dal.enums.*;
import com.ym.mec.common.enums.BaseEnum;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;

/**
 * 对应数据库表(course_schedule):
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CourseScheduleAuditDetailDto {
	/**  */
	private Long id;

	private GroupType groupType;

	/**  */
	@ApiModelProperty(value = "乐团编号",required = false)
	private String musicGroupId;

	/** 班级编号 */
	@ApiModelProperty(value = "班级编号", required = false)
	private Integer classGroupId;

	/** 课程状态 */
	@ApiModelProperty(value = "课程状态", required = false)
	private CourseStatusEnum status;

	/** 补贴 */
	@ApiModelProperty(value = "补贴", required = false)
	private BigDecimal subsidy;

	/** 上课日期 */
	@ApiModelProperty(value = "上课日期", required = false)
	private String classDate;

	/** 上课时间 */
	@ApiModelProperty(value = "上课时间", required = false)
	private String startClassTime;

	/** 结束时间 */
	@ApiModelProperty(value = "结束时间", required = false)
	private String endClassTime;

	/** 上课教师 */
	@ApiModelProperty(value = "上课教师", required = false)
	private Integer teacherId;

	@ApiModelProperty(value = "上课老师名称", required = false)
	private String teacherName;

	/** 实际上课教师 */
	@ApiModelProperty(value = "实际上课教师", required = false)
	private Integer actualTeacherId;

	/** 实际上课教师 */
	@ApiModelProperty(value = "实际上课教师名称", required = false)
	private String actualTeacherName;

	/** 实际上课教师 */
	@ApiModelProperty(value = "修改人", required = false)
	private Integer operatorId;

	/** 实际上课教师 */
	@ApiModelProperty(value = "修改人名称", required = false)
	private String operatorName;

	/**  */
	private Date createTime;

	/**  */
	private Date updateTime;

	@ApiModelProperty(value = "修改时间", required = false)
	private Date auditTime;

	private TeachModeEnum teachMode;

	private CourseSchedule.CourseScheduleType type;

	private String name;

	@ApiModelProperty(value = "实际上课人数")
	private Integer studentNum;

	@ApiModelProperty(value = "请假人数")
	private Integer leaveStudentNum;

	private Integer schoolId;

	private String schoolName;

	private Integer isLock;

	private Integer organId;

	private String teachingContent;

	private String note;

	@ApiModelProperty(value = "助教编号列表")
	private String teachingTeacherIds;

	@ApiModelProperty(value = "助教名称列表")
	private String teachingTeacherNames;

	public String getTeachingTeacherIds() {
		return teachingTeacherIds;
	}

	public void setTeachingTeacherIds(String teachingTeacherIds) {
		this.teachingTeacherIds = teachingTeacherIds;
	}

	public String getTeachingTeacherNames() {
		return teachingTeacherNames;
	}

	public void setTeachingTeacherNames(String teachingTeacherNames) {
		this.teachingTeacherNames = teachingTeacherNames;
	}

	public Date getAuditTime() {
		return auditTime;
	}

	public void setAuditTime(Date auditTime) {
		this.auditTime = auditTime;
	}

	public Integer getOperatorId() {
		return operatorId;
	}

	public void setOperatorId(Integer operatorId) {
		this.operatorId = operatorId;
	}

	public String getOperatorName() {
		return operatorName;
	}

	public void setOperatorName(String operatorName) {
		this.operatorName = operatorName;
	}

	public String getActualTeacherName() {
		return actualTeacherName;
	}

	public void setActualTeacherName(String actualTeacherName) {
		this.actualTeacherName = actualTeacherName;
	}

	public Integer getOrganId() {
		return organId;
	}

	public void setOrganId(Integer organId) {
		this.organId = organId;
	}

	public String getTeachingContent() {
		return teachingContent;
	}

	public void setTeachingContent(String teachingContent) {
		this.teachingContent = teachingContent;
	}

	public String getNote() {
		return note;
	}

	public void setNote(String note) {
		this.note = note;
	}

	public Integer getIsLock() {
		return isLock;
	}

	public void setIsLock(Integer isLock) {
		this.isLock = isLock;
	}

	public String getTeacherName() {
		return teacherName;
	}

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

	public String getSchoolName() {
		return schoolName;
	}

	public void setSchoolName(String schoolName) {
		this.schoolName = schoolName;
	}

	public Integer getStudentNum() {
		return studentNum;
	}

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

	public Integer getLeaveStudentNum() {
		return leaveStudentNum;
	}

	public void setLeaveStudentNum(Integer leaveStudentNum) {
		this.leaveStudentNum = leaveStudentNum;
	}

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

	public Long getId() {
		return this.id;
	}

	public GroupType getGroupType() {
		return groupType;
	}

	public void setGroupType(GroupType groupType) {
		this.groupType = groupType;
	}

	public String getMusicGroupId() {
		return musicGroupId;
	}

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

	public void setClassGroupId(Integer classGroupId) {
		this.classGroupId = classGroupId;
	}

	public Integer getClassGroupId() {
		return this.classGroupId;
	}

	public CourseStatusEnum getStatus() {
		return status;
	}

	public void setStatus(CourseStatusEnum status) {
		this.status = status;
	}

	public void setSubsidy(BigDecimal subsidy) {
		this.subsidy = subsidy;
	}

	public BigDecimal getSubsidy() {
		return this.subsidy;
	}

	public String getClassDate() {
		return classDate;
	}

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

	public String getStartClassTime() {
		return startClassTime;
	}

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

	public String getEndClassTime() {
		return endClassTime;
	}

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

	public Integer getTeacherId() {
		return teacherId;
	}

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

	public Integer getActualTeacherId() {
		return actualTeacherId;
	}

	public void setActualTeacherId(Integer actualTeacherId) {
		this.actualTeacherId = actualTeacherId;
	}

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

	public Date getCreateTime() {
		return this.createTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public Date getUpdateTime() {
		return this.updateTime;
	}

	public TeachModeEnum getTeachMode() {
		return teachMode;
	}

	public void setTeachMode(TeachModeEnum teachMode) {
		this.teachMode = teachMode;
	}

	public CourseSchedule.CourseScheduleType getType() {
		return type;
	}

	public void setType(CourseSchedule.CourseScheduleType type) {
		this.type = type;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getSchoolId() {
		return schoolId;
	}

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

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}

}
