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

import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

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

import com.ym.mec.biz.dal.entity.CooperationOrgan.OwnershipType;
import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
import com.ym.mec.biz.dal.enums.YesOrNoEnum;

/**
 * 对应数据库表(music_group):
 */
public class MusicGroup {

	/**  */
	private String id;
	
	/** 乐团名称 */
	@ApiModelProperty(value = "乐团名称",required = false)
	private String name;
	
	/** 所属分部 */
	@ApiModelProperty(value = "所属分部编号",required = false)
	private Integer organId;

	/** 所属分部 */
	@ApiModelProperty(value = "所属分部名称",required = false)
	private String organName;
	
	/** 学校(合作单位) */
	@ApiModelProperty(value = "学校(合作单位) ",required = false)
	private Integer schoolId;

	/** 学校(合作单位) */
	@ApiModelProperty(value = "学校名称 ",required = false)
	private String schoolName;

	/** 学校(合作单位) */
	@ApiModelProperty(value = "上课地点 ",required = false)
	private String address;
	
	/** 报名截止日期 */
	@ApiModelProperty(value = "报名截止日期",required = false)
	private java.util.Date applyExpireDate;

	@ApiModelProperty(value = "预报名截止日期",required = false)
	private java.util.Date preApplyExpireDate;
	
	/** 团长 */
	@ApiModelProperty(value = "运营主管",required = false)
	private Integer teamTeacherId;
	/** 团长 */
	@ApiModelProperty(value = "运营主管名称",required = false)
	private String teamTeacherName;
	
	/** 教务老师 */
	@ApiModelProperty(value = "教务老师名字",required = false)
	private String educationalTeacherName;
	/** 教务老师 */
	@ApiModelProperty(value = "教务老师编号",required = false)
	private Integer educationalTeacherId;
	
	/** 收费类型 */
	@ApiModelProperty(value = "收费类型",required = false)
	private Integer chargeTypeId;
	/** 收费类型 */
	@ApiModelProperty(value = "收费类型名称",required = false)
	private String chargeTypeName;
	
	@ApiModelProperty(value = "课程形态",required = false)
	private String courseForm;

	@ApiModelProperty(value = "老师课酬结算方式",required = false)
	private SalarySettlementTypeEnum settlementType;
	
	/**  */
	private java.util.Date createTime;
	
	/**  */
	private java.util.Date updateTime;
	
	/** 状态（报名中、缴费中、筹备中、进行中、取消） */
	@ApiModelProperty(value = "乐团状态（报名中、缴费中、筹备中、进行中、取消）",required = false)
	private MusicGroupStatusEnum status;
	
	/** 缴费截止日期 */
	@ApiModelProperty(value = "乐团缴费截止日期",required = false)
	private java.util.Date paymentExpireDate;

	@ApiModelProperty(value = "缴费有效期开始时间", required = false)
	private Date paymentValidStartDate;

	@ApiModelProperty(value = "缴费有效期结束时间", required = false)
	private Date paymentValidEndDate;

	@ApiModelProperty(value = "缴费方式0按月,1按季，2一次性", required = false)
	private Integer paymentPattern;
	
	/** 计费开始日期 */
	@ApiModelProperty(value = "乐团计费开始日期 ",required = false)
	private java.util.Date billStartDate;
	
	@ApiModelProperty(value = "提高课班级数",required = false)
	private Integer improventClassesNum;
	
	@ApiModelProperty(value = "招生年级（多个用,分开）",required = false)
	private String enrollClasses;
	
	/** 是否是加课*/
	@ApiModelProperty(value = "是否是加课",required = false)
	private YesOrNoEnum isExtraClass;
	
	@ApiModelProperty(value = "合作单位编号",required = false)
	private Integer cooperationOrganId;

	@ApiModelProperty(value = "合作单位名称",required = false)
	private String cooperationOrganName;
	
	@ApiModelProperty(value = "启蒙课日期",required = false)
	private String enlightenmentCourseTime;
	
	@ApiModelProperty(value = "家长会日期",required = false)
	private String parentMeetingTime;

	/** 缴费月份*/
	@ApiModelProperty(value = "缴费月份（多个用,分开）",required = false)
	private String paymentMonths;

	@ApiModelProperty(value = "乐团图片",required = false)
	private String img;
	
	@ApiModelProperty(value = "乐队指导",required = false)
	private Integer directorUserId;

	@ApiModelProperty(value = "乐队指导",required = false)
	private String directorUserName;

	@ApiModelProperty(value = "乐团创建人",required = false)
	private Integer operatorUserId;

	@ApiModelProperty(value = "在读人数",required = true)
	private Integer payNum;
	
	@ApiModelProperty(value = "是否是课堂课",required = true)
	private boolean isClassroomLessons;
	
	@ApiModelProperty(value = "备注",required = true)
	private String memo;

	private Integer repairUserId;

	@ApiModelProperty(value = "维修技师名称",required = true)
	private String repairUserName;

	@ApiModelProperty(value = "预计开团日期",required = true)
	private Date expectStartGroupDate;

	@ApiModelProperty(value = "成团人数",required = true)
	private Integer groupMemberNum;
	
	private OwnershipType ownershipType;
	
	private Boolean delFlag;

	private String subjectName;

	private Boolean hasVerifyMusicalList = false;

	public String getRepairUserName() {
		return repairUserName;
	}

	public void setRepairUserName(String repairUserName) {
		this.repairUserName = repairUserName;
	}

	public Integer getPaymentPattern() {
		return paymentPattern;
	}

	public void setPaymentPattern(Integer paymentPattern) {
		this.paymentPattern = paymentPattern;
	}

	public Date getPaymentValidStartDate() {
		return paymentValidStartDate;
	}

	public void setPaymentValidStartDate(Date paymentValidStartDate) {
		this.paymentValidStartDate = paymentValidStartDate;
	}

	public Date getPaymentValidEndDate() {
		return paymentValidEndDate;
	}

	public void setPaymentValidEndDate(Date paymentValidEndDate) {
		this.paymentValidEndDate = paymentValidEndDate;
	}

	public String getSubjectName() {
		return subjectName;
	}

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

	public Integer getRepairUserId() {
		return repairUserId;
	}

	public void setRepairUserId(Integer repairUserId) {
		this.repairUserId = repairUserId;
	}

	public String getDirectorUserName() {
		return directorUserName;
	}

	public void setDirectorUserName(String directorUserName) {
		this.directorUserName = directorUserName;
	}

	public Date getExpectStartGroupDate() {
		return expectStartGroupDate;
	}

	public void setExpectStartGroupDate(Date expectStartGroupDate) {
		this.expectStartGroupDate = expectStartGroupDate;
	}

	public Integer getGroupMemberNum() {
		return groupMemberNum;
	}

	public void setGroupMemberNum(Integer groupMemberNum) {
		this.groupMemberNum = groupMemberNum;
	}

	public String getCooperationOrganName() {
		return cooperationOrganName;
	}

	public void setCooperationOrganName(String cooperationOrganName) {
		this.cooperationOrganName = cooperationOrganName;
	}

	public String getAddress() {
		return address;
	}

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

	public String getOrganName() {
		return organName;
	}

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

	public String getSchoolName() {
		return schoolName;
	}

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

	public String getTeamTeacherName() {
		return teamTeacherName;
	}

	public void setTeamTeacherName(String teamTeacherName) {
		this.teamTeacherName = teamTeacherName;
	}

	public String getEducationalTeacherName() {
		return educationalTeacherName;
	}

	public void setEducationalTeacherName(String educationalTeacherName) {
		this.educationalTeacherName = educationalTeacherName;
	}

	public String getChargeTypeName() {
		return chargeTypeName;
	}

	public void setChargeTypeName(String chargeTypeName) {
		this.chargeTypeName = chargeTypeName;
	}

	public Integer getPayNum() {
		return payNum;
	}

	public void setPayNum(Integer payNum) {
		this.payNum = payNum;
	}

	public String getImg() {
		return img;
	}

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

	public String getPaymentMonths() {
		return paymentMonths;
	}

	public void setPaymentMonths(String paymentMonth) {
		this.paymentMonths = paymentMonth;
	}

	public String getId() {
		return id;
	}

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

	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return this.name;
	}
			
	public void setOrganId(Integer organId){
		this.organId = organId;
	}
	
	public Integer getOrganId(){
		return this.organId;
	}
			
	public void setSchoolId(Integer schoolId){
		this.schoolId = schoolId;
	}
	
	public Integer getSchoolId(){
		return this.schoolId;
	}
			
	public void setApplyExpireDate(java.util.Date applyExpireDate){
		this.applyExpireDate = applyExpireDate;
	}
	
	public java.util.Date getApplyExpireDate(){
		return this.applyExpireDate;
	}
			
	public java.util.Date getPreApplyExpireDate() {
		return preApplyExpireDate;
	}

	public void setPreApplyExpireDate(java.util.Date preApplyExpireDate) {
		this.preApplyExpireDate = preApplyExpireDate;
	}

	public void setTeamTeacherId(Integer teamTeacherId){
		this.teamTeacherId = teamTeacherId;
	}
	
	public Integer getTeamTeacherId(){
		return this.teamTeacherId;
	}
			
	public void setEducationalTeacherId(Integer educationalTeacherId){
		this.educationalTeacherId = educationalTeacherId;
	}
	
	public Integer getEducationalTeacherId(){
		return this.educationalTeacherId;
	}
			
	public void setChargeTypeId(Integer chargeTypeId){
		this.chargeTypeId = chargeTypeId;
	}
	
	public Integer getChargeTypeId(){
		return this.chargeTypeId;
	}
			
	public String getCourseForm() {
		return courseForm;
	}

	public void setCourseForm(String courseForm) {
		this.courseForm = courseForm;
	}

	public Integer getCooperationOrganId() {
		return cooperationOrganId;
	}

	public void setCooperationOrganId(Integer cooperationOrganId) {
		this.cooperationOrganId = cooperationOrganId;
	}

	public String getEnlightenmentCourseTime() {
		return enlightenmentCourseTime;
	}

	public void setEnlightenmentCourseTime(String enlightenmentCourseTime) {
		this.enlightenmentCourseTime = enlightenmentCourseTime;
	}

	public String getParentMeetingTime() {
		return parentMeetingTime;
	}

	public void setParentMeetingTime(String parentMeetingTime) {
		this.parentMeetingTime = parentMeetingTime;
	}

	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 MusicGroupStatusEnum getStatus() {
		return status;
	}

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

	public void setPaymentExpireDate(java.util.Date paymentExpireDate){
		this.paymentExpireDate = paymentExpireDate;
	}
	
	public java.util.Date getPaymentExpireDate(){
		return this.paymentExpireDate;
	}
			
	public void setBillStartDate(java.util.Date billStartDate){
		this.billStartDate = billStartDate;
	}
	
	public java.util.Date getBillStartDate(){
		return this.billStartDate;
	}
			
	public Integer getImproventClassesNum() {
		return improventClassesNum;
	}

	public void setImproventClassesNum(Integer improventClassesNum) {
		this.improventClassesNum = improventClassesNum;
	}

	public String getEnrollClasses() {
		return enrollClasses;
	}

	public void setEnrollClasses(String enrollClasses) {
		this.enrollClasses = enrollClasses;
	}

	public YesOrNoEnum getIsExtraClass() {
		return isExtraClass;
	}

	public void setIsExtraClass(YesOrNoEnum isExtraClass) {
		this.isExtraClass = isExtraClass;
	}

	public Integer getDirectorUserId() {
		return directorUserId;
	}

	public void setDirectorUserId(Integer directorUserId) {
		this.directorUserId = directorUserId;
	}

	public Integer getOperatorUserId() {
		return operatorUserId;
	}

	public void setOperatorUserId(Integer operatorUserId) {
		this.operatorUserId = operatorUserId;
	}

	public SalarySettlementTypeEnum getSettlementType() {
		return settlementType;
	}

	public void setSettlementType(SalarySettlementTypeEnum settlementType) {
		this.settlementType = settlementType;
	}

	public boolean isClassroomLessons() {
		return isClassroomLessons;
	}

	public void setClassroomLessons(boolean isClassroomLessons) {
		this.isClassroomLessons = isClassroomLessons;
	}

	public boolean getIsClassroomLessons() {
		return isClassroomLessons;
	}

	public void setIsClassroomLessons(boolean isClassroomLessons) {
		this.isClassroomLessons = isClassroomLessons;
	}



	public String getMemo() {
		return memo;
	}

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

	public OwnershipType getOwnershipType() {
		return ownershipType;
	}

	public void setOwnershipType(OwnershipType ownershipType) {
		this.ownershipType = ownershipType;
	}

	public Boolean getDelFlag() {
		return delFlag;
	}

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

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

	public Boolean getHasVerifyMusicalList() {
		return hasVerifyMusicalList;
	}

	public void setHasVerifyMusicalList(Boolean hasVerifyMusicalList) {
		this.hasVerifyMusicalList = hasVerifyMusicalList;
	}
}
