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

import java.util.ArrayList;
import java.util.List;

import io.swagger.annotations.ApiModelProperty;

import org.apache.commons.lang3.builder.ToStringBuilder;

import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
import com.ym.mec.biz.dal.enums.GroupType;

/**
 * 对应数据库表(class_group):
 */
public class ClassGroup {

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

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

	/**  */
	@ApiModelProperty(value = "科目编号(多个,号分割)", required = true)
	private String subjectIdList;

	@ApiModelProperty(value = "学生编号(多个,号分割)", required = true)
	private String userIds;

	@ApiModelProperty(value = "科目名称", required = false, hidden = true)
	private String subjectName;

	/** 班级名称 */
	@ApiModelProperty(value = "班级名称", required = true)
	private String name;

	/** 群名称 */
	@ApiModelProperty(value = "群名称", required = true)
	private String groupName;

	/** 群名称 */
	@ApiModelProperty(value = "群名称", required = true)
	private String viewGroupName;

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

	/** 分部 */
	@ApiModelProperty(value = "分部", required = true)
	private String organName;

	/** 子班级名称列表 */
	@ApiModelProperty(value = "子班班级名称")
	private String classNames;

	/** 预计招生人数 */
	@ApiModelProperty(value = "预计招生人数", required = true)
	private Integer expectStudentNum;

	/** 学生数 */
	@ApiModelProperty(value = "学生数量", required = false)
	private Integer studentNum;

	/**  */
	private java.util.Date createTime;

	/**  */
	private java.util.Date updateTime;

	/** 班级类型(普通班级、合奏班级) */
	@ApiModelProperty(value = "班级类型(普通班级、合奏班级、提高课班级、VIP班级、试听课)", required = true)
	private ClassGroupTypeEnum type;

	/** 班级类型(普通班级、合奏班级) */
	@ApiModelProperty(value = "是否删除，1是 0否", required = false)
	private Integer delFlag = 0;

	@ApiModelProperty(value = "是否冻结，1是 0否", required = false)
	private Integer lockFlag = 0;

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

	@ApiModelProperty(value = "当前课次",required = false)
	private Integer currentClassTimes = 0;
	
	@ApiModelProperty(value = "班级图标",required = false)
	private String img;
	
	@ApiModelProperty(value = "备注",required = false)
	private String memo;
	
	private List<ClassGroupTeacherMapper> teacherMapperList = new ArrayList<ClassGroupTeacherMapper>();
	
	private List<CourseSchedule> courseScheduleList = new ArrayList<CourseSchedule>();

	public String getOrganName() {
		return organName;
	}

	public void setOrganName(String organName) {
		this.organName = organName;
	}

	public String getViewGroupName() {
		return viewGroupName;
	}

	public void setViewGroupName(String viewGroupName) {
		this.viewGroupName = viewGroupName;
	}

	public String getMusicGroupName() {
		return musicGroupName;
	}

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

	public String getGroupName() {
		return groupName;
	}

	public void setGroupName(String groupName) {
		this.groupName = groupName;
	}

	public Integer getCurrentClassTimes() {
		return currentClassTimes;
	}

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

	public Integer getTotalClassTimes() {
		return totalClassTimes;
	}

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

	public Integer getDelFlag() {
		return delFlag;
	}

	public void setDelFlag(Integer delFlag) {
		this.delFlag = delFlag;
	}

	public Integer getLockFlag() {
		return lockFlag;
	}

	public void setLockFlag(Integer lockFlag) {
		this.lockFlag = lockFlag;
	}

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

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

	public GroupType getGroupType() {
		return groupType;
	}

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

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

	public String getMusicGroupId() {
		return this.musicGroupId;
	}

	public String getSubjectIdList() {
		return subjectIdList;
	}

	public void setSubjectIdList(String subjectIdList) {
		this.subjectIdList = subjectIdList;
	}

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

	public String getName() {
		return this.name;
	}

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

	public Integer getStudentNum() {
		return this.studentNum;
	}

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

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

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

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

	public ClassGroupTypeEnum getType() {
		return type;
	}

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

	public String getSubjectName() {
		return subjectName;
	}

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

	public String getUserIds() {
		return userIds;
	}

	public void setUserIds(String userIds) {
		this.userIds = userIds;
	}

	public String getClassNames() {
		return classNames;
	}

	public void setClassNames(String classNames) {
		this.classNames = classNames;
	}

	public Integer getExpectStudentNum() {
		return expectStudentNum;
	}

	public void setExpectStudentNum(Integer expectStudentNum) {
		this.expectStudentNum = expectStudentNum;
	}

	public String getImg() {
		return img;
	}

	public void setImg(String img) {
		this.img = img;
	}

	public String getMemo() {
		return memo;
	}

	public void setMemo(String memo) {
		this.memo = memo;
	}

	public List<ClassGroupTeacherMapper> getTeacherMapperList() {
		return teacherMapperList;
	}

	public void setTeacherMapperList(List<ClassGroupTeacherMapper> teacherMapperList) {
		this.teacherMapperList = teacherMapperList;
	}

	public List<CourseSchedule> getCourseScheduleList() {
		return courseScheduleList;
	}

	public void setCourseScheduleList(List<CourseSchedule> courseScheduleList) {
		this.courseScheduleList = courseScheduleList;
	}

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

}
