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

import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
import com.ym.mec.common.enums.BaseEnum;

/**
 * 对应数据库表(course_schedule_rewards_rules):
 */
public class CourseScheduleRewardsRules {

	public enum RewardMode implements BaseEnum<String, RewardMode> {
		STAIR, PER, TOTAL;

		@Override
		public String getCode() {
			return name();
		}
	}

	/**  */
	private Integer id;

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

	@ApiModelProperty(value = "课程类型", required = true)
	private CourseScheduleType courseScheduleType;

	@ApiModelProperty(value = "奖励方式(PER, TOTAL)", required = true)
	private RewardMode rewardMode;

	@ApiModelProperty(value = "分部列表（用逗号分开）", required = true)
	private String organId;

	@ApiModelProperty(value = "声部编号", required = true)
	private String subjectIds;

	@ApiModelProperty(value = "声部名称", required = true)
	private String subjectName;

	@ApiModelProperty(value = "梯度奖励规则", required = true)
	private String rewardsRulesJson;

	@ApiModelProperty(value = "vip课程类型", required = true)
	private String vipGroupCategoryIdList;

	@ApiModelProperty(value = "vip课程类型名称列表", required = true)
	private String vipGroupCategoryNameList;

	@ApiModelProperty(value = "关联教师编号列表", required = true)
	private String teacherId;

	@ApiModelProperty(value = "关联教师编号名称列表", required = true)
	private String teacherNames;

	public String getSubjectName() {
		return subjectName;
	}

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

	public String getSubjectIds() {
		return subjectIds;
	}

	public void setSubjectIds(String subjectIds) {
		this.subjectIds = subjectIds;
	}

	public String getVipGroupCategoryNameList() {
		return vipGroupCategoryNameList;
	}

	public void setVipGroupCategoryNameList(String vipGroupCategoryNameList) {
		this.vipGroupCategoryNameList = vipGroupCategoryNameList;
	}

	public String getTeacherNames() {
		return teacherNames;
	}

	public void setTeacherNames(String teacherNames) {
		this.teacherNames = teacherNames;
	}

	/**  */
	private java.util.Date createTime;
	/**  */
	private java.util.Date updateTime;
	
	private String organNameList;

	public String getVipGroupCategoryIdList() {
		return vipGroupCategoryIdList;
	}

	public void setVipGroupCategoryIdList(String vipGroupCategoryIdList) {
		this.vipGroupCategoryIdList = vipGroupCategoryIdList;
	}

	public String getTeacherId() {
		return teacherId;
	}

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

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

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

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

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

	public void setCourseScheduleType(CourseScheduleType courseScheduleType) {
		this.courseScheduleType = courseScheduleType;
	}

	public CourseScheduleType getCourseScheduleType() {
		return this.courseScheduleType;
	}

	public void setRewardMode(RewardMode rewardMode) {
		this.rewardMode = rewardMode;
	}

	public RewardMode getRewardMode() {
		return this.rewardMode;
	}

	public String getOrganId() {
		return organId;
	}

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

	public void setRewardsRulesJson(String rewardsRulesJson) {
		this.rewardsRulesJson = rewardsRulesJson;
	}

	public String getRewardsRulesJson() {
		return this.rewardsRulesJson;
	}

	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 String getOrganNameList() {
		return organNameList;
	}

	public void setOrganNameList(String organNameList) {
		this.organNameList = organNameList;
	}

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

}
