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

import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
import com.ym.mec.biz.dal.enums.KitPurchaseMethodEnum;
import com.ym.mec.biz.dal.enums.YesOrNoEnum;

import io.swagger.annotations.ApiModelProperty;

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

import java.math.BigDecimal;

/**
 * 对应数据库表(student_registration):
 */
public class StudentRegistration {

    @ApiModelProperty(value = "报名id", hidden = true)
    private Long id;

    @ApiModelProperty(value = "机构id", hidden = true)
    private Integer organId;

    @ApiModelProperty(value = "学生编号", hidden = true)
    private Integer userId;

    @ApiModelProperty(value = "学生姓名", required = true)
    private String name;

    @ApiModelProperty(value = "性别（0，女  1，男", required = true)
    private Integer gender;

    @ApiModelProperty(value = "身份证号", required = true)
    private String idCardNo;

    @ApiModelProperty(value = "所属乐团（对应 music_group 表id）", required = true)
    private String musicGroupId;

    @ApiModelProperty(value = "当前所在年级", required = true)
    private String currentGrade;

    @ApiModelProperty(value = "当前所在班级", required = true)
    private String currentClass;

    @ApiModelProperty(value = "报名科目", required = true)
    private Integer subjectId;

    @ApiModelProperty(value = "实际科目", hidden = true)
    private Integer actualSubjectId;

    @ApiModelProperty(value = "是否允许调剂", required = true)
    private YesOrNoEnum isAllowAdjust;

    @ApiModelProperty(value = "器材购买方式（GROUP:团购,OWNED:自备）", required = true)
    private KitPurchaseMethodEnum kitPurchaseMethod;

    @ApiModelProperty(value = "备注", hidden = false)
    private String remark;

    @ApiModelProperty(value = "添加时间", hidden = true)
    private java.util.Date createTime;

    @ApiModelProperty(value = "更新时间", hidden = true)
    private java.util.Date updateTime;

    @ApiModelProperty(value = "家长姓名", required = true)
    private String parentsName;

    @ApiModelProperty(value = "家长电话", required = true)
    private String parentsPhone;

    @ApiModelProperty(value = "家长单位", required = false)
    private String parentsCompany;

    @ApiModelProperty(value = "缴费状态（1-已缴费 0-未交费）", hidden = true)
    private YesOrNoEnum paymentStatus;

    @ApiModelProperty(value = "用户所在乐团状态）",required = false)
    private ClassGroupStudentStatusEnum musicGroupStatus;

    @ApiModelProperty(value = "班级id", hidden = true)
    private Integer classGroupId;

    @ApiModelProperty(value = "零时课程费用", hidden = true)
    private BigDecimal temporaryCourseFee;

    public ClassGroupStudentStatusEnum getMusicGroupStatus() {
        return musicGroupStatus;
    }

    public void setMusicGroupStatus(ClassGroupStudentStatusEnum musicGroupStatus) {
        this.musicGroupStatus = musicGroupStatus;
    }

    public BigDecimal getTemporaryCourseFee() {
        return temporaryCourseFee;
    }

    public void setTemporaryCourseFee(BigDecimal temporaryCourseFee) {
        this.temporaryCourseFee = temporaryCourseFee;
    }

    public Integer getActualSubjectId() {
        return actualSubjectId;
    }

    public void setActualSubjectId(Integer actualSubjectId) {
        this.actualSubjectId = actualSubjectId;
    }

    public String getParentsPhone() {
        return parentsPhone;
    }

    public void setParentsPhone(String parentsPhone) {
        this.parentsPhone = parentsPhone;
    }

    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 setMusicGroupId(String musicGroupId) {
        this.musicGroupId = musicGroupId;
    }

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

    public void setCurrentGrade(String currentGrade) {
        this.currentGrade = currentGrade;
    }

    public String getCurrentGrade() {
        return this.currentGrade;
    }

    public void setCurrentClass(String currentClass) {
        this.currentClass = currentClass;
    }

    public String getCurrentClass() {
        return this.currentClass;
    }

    public void setSubjectId(Integer subjectId) {
        this.subjectId = subjectId;
    }

    public Integer getSubjectId() {
        return this.subjectId;
    }

    public YesOrNoEnum getIsAllowAdjust() {
        return isAllowAdjust;
    }

    public void setIsAllowAdjust(YesOrNoEnum isAllowAdjust) {
        this.isAllowAdjust = isAllowAdjust;
    }

    public void setPaymentStatus(YesOrNoEnum paymentStatus) {
        this.paymentStatus = paymentStatus;
    }

    public KitPurchaseMethodEnum getKitPurchaseMethod() {
        return kitPurchaseMethod;
    }

    public void setKitPurchaseMethod(KitPurchaseMethodEnum kitPurchaseMethod) {
        this.kitPurchaseMethod = kitPurchaseMethod;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getRemark() {
        return this.remark;
    }

    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 setParentsName(String parentsName) {
        this.parentsName = parentsName;
    }

    public String getParentsName() {
        return this.parentsName;
    }

    public void setParentsCompany(String parentsCompany) {
        this.parentsCompany = parentsCompany;
    }

    public String getParentsCompany() {
        return this.parentsCompany;
    }

    public YesOrNoEnum getPaymentStatus() {
        return paymentStatus;
    }

    public Integer getClassGroupId() {
        return classGroupId;
    }

    public void setClassGroupId(Integer classGroupId) {
        this.classGroupId = classGroupId;
    }

    public String getName() {
        return name;
    }

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

    public String getIdCardNo() {
        return idCardNo;
    }

    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }


    public Integer getOrganId() {
        return organId;
    }

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

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