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

import com.ym.mec.biz.dal.enums.AuditStatusEnum;
import com.ym.mec.biz.dal.enums.GroupStatusEnum;
import com.ym.mec.biz.dal.enums.PracticeGroupType;
import com.ym.mec.common.entity.BaseEntity;

import io.swagger.annotations.ApiModelProperty;

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

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

/**
 * 对应数据库表(practice_group):
 */
public class PracticeGroup extends BaseEntity {

	/**  */
	private Long id;
	
	/**  */
	private String name;
	
	/**  */
	private Integer subjectId;
	
	private PracticeGroupType type;

	@ApiModelProperty(value = "教师ID",required = false)
	private Integer userId;

	@ApiModelProperty(value = "学员ID",required = false)
	private Integer studentId;
	
	/**  */
	private Integer singleClassMinutes;
	
	/**  */
	private Integer organId;

	private Date firstCourseTime;

	private Date secondCourseTime;
	
	/**  */
	private java.util.Date coursesStartDate;

	private String coursesStartDates;
	
	/**  */
	private java.util.Date coursesExpireDate;
	
	/**  */
	private java.util.Date createTime;
	
	/**  */
	private java.util.Date updateTime;
	
	/**  */
	private String memo;
	
	private Integer buyMonths;

	private Integer drillTimesOnWeek;

	private String drillTimesJson;

	private GroupStatusEnum groupStatus;

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

	private Long beRenewGroupId;

	private Integer educationalTeacherId;

	private Integer vipGroupActivityId;

	@ApiModelProperty(value = "课程规划",required = false)
	private String courseScheduleJson;

	@ApiModelProperty(value = "报名截止时间",required = false)
	private Date paymentExpireDate;

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

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

	@ApiModelProperty(value = "学员购买的活动已课程关联")
	private Integer activityUserMapperId;

	@ApiModelProperty(value = "总金额",required = false)
	private BigDecimal totalPrice = BigDecimal.ZERO;

	public Integer getActivityUserMapperId() {
		return activityUserMapperId;
	}

	public void setActivityUserMapperId(Integer activityUserMapperId) {
		this.activityUserMapperId = activityUserMapperId;
	}

	public BigDecimal getTotalPrice() {
		return totalPrice;
	}

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

	public Integer getAllCourseNum() {
		return allCourseNum;
	}

	public void setAllCourseNum(Integer allCourseNum) {
		this.allCourseNum = allCourseNum;
	}

	public Date getPaymentExpireDate() {
		return paymentExpireDate;
	}

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

	public Date getRegistrationStartTime() {
		return registrationStartTime;
	}

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

	public String getCourseScheduleJson() {
		return courseScheduleJson;
	}

	public void setCourseScheduleJson(String courseScheduleJson) {
		this.courseScheduleJson = courseScheduleJson;
	}

	public AuditStatusEnum getAuditStatus() {
		return auditStatus;
	}

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

	public Integer getVipGroupActivityId() {
		return vipGroupActivityId;
	}

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

	public String getCoursesStartDates() {
		return coursesStartDates;
	}

	public void setCoursesStartDates(String coursesStartDates) {
		this.coursesStartDates = coursesStartDates;
	}

	public Integer getEducationalTeacherId() {
		return educationalTeacherId;
	}

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

	public Long getBeRenewGroupId() {
		return beRenewGroupId;
	}

	public void setBeRenewGroupId(Long beRenewGroupId) {
		this.beRenewGroupId = beRenewGroupId;
	}

	public GroupStatusEnum getGroupStatus() {
		return groupStatus;
	}

	public void setGroupStatus(GroupStatusEnum groupStatus) {
		this.groupStatus = groupStatus;
	}

	public Integer getBuyMonths() {
		return buyMonths;
	}

	public void setBuyMonths(Integer buyMonths) {
		this.buyMonths = buyMonths;
	}

	public Integer getDrillTimesOnWeek() {
		return drillTimesOnWeek;
	}

	public void setDrillTimesOnWeek(Integer drillTimesOnWeek) {
		this.drillTimesOnWeek = drillTimesOnWeek;
	}

	public String getDrillTimesJson() {
		return drillTimesJson;
	}

	public void setDrillTimesJson(String drillTimesJson) {
		this.drillTimesJson = drillTimesJson;
	}

	public Integer getStudentId() {
		return studentId;
	}

	public void setStudentId(Integer studentId) {
		this.studentId = studentId;
	}

	public Date getFirstCourseTime() {
		return firstCourseTime;
	}

	public void setFirstCourseTime(Date firstCourseTime) {
		this.firstCourseTime = firstCourseTime;
	}

	public Date getSecondCourseTime() {
		return secondCourseTime;
	}

	public void setSecondCourseTime(Date secondCourseTime) {
		this.secondCourseTime = secondCourseTime;
	}

	public void setId(Long id){
		this.id = id;
	}
	
	public Long getId(){
		return this.id;
	}
			
	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return this.name;
	}
			
	public PracticeGroupType getType() {
		return type;
	}

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

	public void setSubjectId(Integer subjectId){
		this.subjectId = subjectId;
	}
	
	public Integer getSubjectId(){
		return this.subjectId;
	}
			
	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 setOrganId(Integer organId){
		this.organId = organId;
	}
	
	public Integer getOrganId(){
		return this.organId;
	}
			
	public void setCoursesStartDate(java.util.Date coursesStartDate){
		this.coursesStartDate = coursesStartDate;
	}
	
	public java.util.Date getCoursesStartDate(){
		return this.coursesStartDate;
	}
			
	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 setMemo(String memo){
		this.memo = memo;
	}
	
	public String getMemo(){
		return this.memo;
	}
			
	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}

}
