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

import com.ym.mec.biz.dal.enums.AuditStatusEnum;
import com.ym.mec.biz.dal.enums.TeachModeEnum;
import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 对应数据库表(vip_group):
 */
public class VipGroup {

	/**  */
	private Long id;

	@ApiModelProperty(value = "课程名称",required = false)
	private String name;

	/**  */
	@ApiModelProperty(value = "用户编号", required = false)
	private Integer userId;

	@ApiModelProperty(value = "用户名")
	private String userName;

	/** 单节课时 */
	@ApiModelProperty(value = "单节课时", required = false)
	private Integer singleClassMinutes;

	/** 缴费截止时间 */
	@ApiModelProperty(value = "缴费截止时间", required = false)
	private java.util.Date paymentExpireDate;

	/** 课程结束日期 */
	@ApiModelProperty(value = "课程结束日期", required = false)
	private java.util.Date coursesExpireDate;

	@ApiModelProperty(value = "报名开始时间", required = false)
	private Date registrationStartTime;

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

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

	private String organName;

	private String schoolName;

	private String subjectName;

	/** 教学点 */
	@ApiModelProperty(value = "教学点", required = false)
	private Integer teacherSchoolId;

	/** 线上课课时数 */
	@ApiModelProperty(value = "线上课课时数", required = false)
	private Integer onlineClassesNum;

	/** 线下课课时数 */
	@ApiModelProperty(value = "线下课课时数", required = false)
	private Integer offlineClassesNum;

	@ApiModelProperty(value = "线上课单价",required = false)
	private BigDecimal onlineClassesUnitPrice;

	@ApiModelProperty(value = "线下课单价",required = false)
	private BigDecimal offlineClassesUnitPrice;

	@ApiModelProperty(value = "课程总价",required = false)
	private BigDecimal totalPrice = new BigDecimal(0);

	@ApiModelProperty(value = "审批状态",required = false)
	private AuditStatusEnum auditStatus;

	@ApiModelProperty(value = "课程类型ID",required = false)
	private Integer vipGroupCategoryId;

	private String vipGroupCategoryName;
	
	@ApiModelProperty(value = "所属分部列表",required = false)
	private String organIdList;

	@ApiModelProperty("活动方案编号")
	private Integer vipGroupActivityId;

	@ApiModelProperty(value = "活动方案名称")
	private String vipGroupActivityName;

	@ApiModelProperty(value = "课程状态")
	private VipGroupStatusEnum status;

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

	@ApiModelProperty(value = "课时总数")
	private Integer totalClassTimes;

	@ApiModelProperty(value = "剩余课时")
	private Integer subClassTimes;

	@ApiModelProperty(value = "当前课时")
	private Integer currentClassTimes;

	@ApiModelProperty(value = "赠送课时类型")
	private TeachModeEnum giveTeachMode;
	
	private Integer organId;

	@ApiModelProperty(value = "取消原因")
	private String stopReason;

	@ApiModelProperty(value = "备注")
	private String memo;

	@ApiModelProperty(value = "月度消耗百分数")
	private Integer monthConsumeRate;

	@ApiModelProperty(value = "开课时间")
	private Date courseStartDate;

	private String courseSchedulesJson;

	@ApiModelProperty(value = "指定学员列表")
	private String studentIdList;

	private Integer educationalTeacherId;

	private String educationalTeacherName;

	private String userInfo;

	private String lastOverTime;

	private BigDecimal courseUnitPrice;

	private int enableDelete;

	public Integer getEnableDelete() {
		return enableDelete;
	}

	public void setEnableDelete(Integer enableDelete) {
		this.enableDelete = enableDelete;
	}

	public String getVipGroupCategoryName() {
		return vipGroupCategoryName;
	}

	public void setVipGroupCategoryName(String vipGroupCategoryName) {
		this.vipGroupCategoryName = vipGroupCategoryName;
	}

	public BigDecimal getCourseUnitPrice() {
		return courseUnitPrice;
	}

	public void setCourseUnitPrice(BigDecimal courseUnitPrice) {
		this.courseUnitPrice = courseUnitPrice;
	}

	public String getLastOverTime() {
		return lastOverTime;
	}

	public void setLastOverTime(String lastOverTime) {
		this.lastOverTime = lastOverTime;
	}

	public String getUserInfo() {
		return userInfo;
	}

	public void setUserInfo(String userInfo) {
		this.userInfo = userInfo;
	}

	public String getEducationalTeacherName() {
		return educationalTeacherName;
	}

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

	public Integer getEducationalTeacherId() {
		return educationalTeacherId;
	}

	public void setEducationalTeacherId(Integer educationalTeacherId) {
		this.educationalTeacherId = educationalTeacherId;
	}

	public Integer getSubClassTimes() {
		return subClassTimes;
	}

	public void setSubClassTimes(Integer subClassTimes) {
		this.subClassTimes = subClassTimes;
	}

	public String getStudentIdList() {
		return studentIdList;
	}

	public void setStudentIdList(String studentIdList) {
		this.studentIdList = studentIdList;
	}

	public String getCourseSchedulesJson() {
		return courseSchedulesJson;
	}

	public void setCourseSchedulesJson(String courseSchedulesJson) {
		this.courseSchedulesJson = courseSchedulesJson;
	}

	public Date getCourseStartDate() {
		return courseStartDate;
	}

	public void setCourseStartDate(Date courseStartDate) {
		this.courseStartDate = courseStartDate;
	}

	public Integer getMonthConsumeRate() {
		return monthConsumeRate;
	}

	public void setMonthConsumeRate(Integer monthConsumeRate) {
		this.monthConsumeRate = monthConsumeRate;
	}

	public String getStopReason() {
		return stopReason;
	}

	public void setStopReason(String stopReason) {
		this.stopReason = stopReason;
	}

	public String getMemo() {
		return memo;
	}

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

	public String getVipGroupActivityName() {
		return vipGroupActivityName;
	}

	public void setVipGroupActivityName(String vipGroupActivityName) {
		this.vipGroupActivityName = vipGroupActivityName;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

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

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

	public Integer getVipGroupActivityId() {
		return vipGroupActivityId;
	}

	public void setVipGroupActivityId(Integer vipGroupActivityId) {
		this.vipGroupActivityId = vipGroupActivityId;
	}

	public AuditStatusEnum getAuditStatus() {
		return auditStatus;
	}

	public void setAuditStatus(AuditStatusEnum auditStatus) {
		this.auditStatus = auditStatus;
	}

	public Integer getVipGroupCategoryId() {
		return vipGroupCategoryId;
	}

	public void setVipGroupCategoryId(Integer vipGroupCategoryId) {
		this.vipGroupCategoryId = vipGroupCategoryId;
	}

	public BigDecimal getOnlineClassesUnitPrice() {
		return onlineClassesUnitPrice;
	}

	public void setOnlineClassesUnitPrice(BigDecimal onlineClassesUnitPrice) {
		this.onlineClassesUnitPrice = onlineClassesUnitPrice;
	}

	public BigDecimal getOfflineClassesUnitPrice() {
		return offlineClassesUnitPrice;
	}

	public void setOfflineClassesUnitPrice(BigDecimal offlineClassesUnitPrice) {
		this.offlineClassesUnitPrice = offlineClassesUnitPrice;
	}

	public BigDecimal getTotalPrice() {
		return totalPrice;
	}

	public void setTotalPrice(BigDecimal totalPrice) {
		this.totalPrice = totalPrice;
	}

	public String getName() {
		return name;
	}

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

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

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

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	public Integer getUserId() {
		return this.userId;
	}

	public void setSingleClassMinutes(Integer singleClassMinutes) {
		this.singleClassMinutes = singleClassMinutes;
	}

	public Integer getSingleClassMinutes() {
		return this.singleClassMinutes;
	}

	public void setPaymentExpireDate(java.util.Date paymentExpireDate) {
		this.paymentExpireDate = paymentExpireDate;
	}

	public java.util.Date getPaymentExpireDate() {
		return this.paymentExpireDate;
	}

	public void setCoursesExpireDate(java.util.Date coursesExpireDate) {
		this.coursesExpireDate = coursesExpireDate;
	}

	public java.util.Date getCoursesExpireDate() {
		return this.coursesExpireDate;
	}

	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 void setTeacherSchoolId(Integer teacherSchoolId) {
		this.teacherSchoolId = teacherSchoolId;
	}

	public Integer getTeacherSchoolId() {
		return this.teacherSchoolId;
	}

	public void setOnlineClassesNum(Integer onlineClassesNum) {
		this.onlineClassesNum = onlineClassesNum;
	}

	public Integer getOnlineClassesNum() {
		return this.onlineClassesNum;
	}

	public void setOfflineClassesNum(Integer offlineClassesNum) {
		this.offlineClassesNum = offlineClassesNum;
	}

	public Integer getOfflineClassesNum() {
		return this.offlineClassesNum;
	}

	public Date getRegistrationStartTime() {
		return registrationStartTime;
	}

	public void setRegistrationStartTime(Date registrationStartTime) {
		this.registrationStartTime = registrationStartTime;
	}

	public String getOrganIdList() {
		return organIdList;
	}

	public void setOrganIdList(String organIdList) {
		this.organIdList = organIdList;
	}

	public TeachModeEnum getGiveTeachMode() {
		return giveTeachMode;
	}

	public void setGiveTeachMode(TeachModeEnum giveTeachMode) {
		this.giveTeachMode = giveTeachMode;
	}

	public Integer getOrganId() {
		return organId;
	}

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

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

	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 getSubjectName() {
		return subjectName;
	}

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