package com.keao.edu.user.entity;

import com.keao.edu.user.api.entity.Student;
import com.keao.edu.user.enums.StudentRegistrationStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.math.BigDecimal;

/**
 * 对应数据库表(exam_registration):
 */
public class ExamRegistration {

	private Integer id;
	
	@ApiModelProperty(value = "考级项目编号")
	private Long examinationBasicId;

	@ApiModelProperty(value = "考级项目详情")
	private ExaminationBasic examinationBasic;
	
	@ApiModelProperty(value = "学员编号")
	private Integer studentId;

	@ApiModelProperty(value = "学员基本信息")
	private Student sysUser;

	@ApiModelProperty(value = "合作单位编号")
	private Integer organId;

	@ApiModelProperty(value = "合作单位信息")
	private Organization organization;
	
	@ApiModelProperty(value = "专业编号")
	private Integer subjectId;

	@ApiModelProperty(value = "专业信息")
	private Subject subject;

	@ApiModelProperty(value = "报考级别")
	private Integer level;

	@ApiModelProperty(value = "考级费用")
	private BigDecimal levelFee;

	@ApiModelProperty(value = "乐理级别")
	private Integer examMusicTheoryLevel;

	@ApiModelProperty(value = "乐理考级费用")
	private BigDecimal theoryLevelFee;
	
	@ApiModelProperty(value = "考试内容")
	private String songJson;
	
	@ApiModelProperty(value = "上次报考级别")
	private Integer lastExamLevel;
	
	@ApiModelProperty(value = "上次报考证书")
	private String lastExamCertificateUrl;

	@ApiModelProperty(value = "上次乐理级别")
	private Integer lastMusicTheoryLevel;

	@ApiModelProperty(value = "上次乐理证书")
	private String lastMusicTheoryCertificateUrl;
	
	@ApiModelProperty(value = "指导老师姓名")
	private String adviserName;
	
	@ApiModelProperty(value = "指导老师电话")
	private String adviserPhone;

	@ApiModelProperty(value = "证件号")
	private String cardNo;

	@ApiModelProperty(value = "报名状态")
	private StudentRegistrationStatusEnum status;

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

	@ApiModelProperty(value = "考试内容id")
	private Long examSubjectSongId;

	@ApiModelProperty(value = "项目乐理id")
	private Integer examMusicTheoryId;

	private java.util.Date createTime;

	private java.util.Date updateTime;

	private String tenantId;

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

	public Organization getOrganization() {
		return organization;
	}

	public void setOrganization(Organization organization) {
		this.organization = organization;
	}

	public StudentRegistrationStatusEnum getStatus() {
		return status;
	}

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

	public Student getSysUser() {
		return sysUser;
	}

	public void setSysUser(Student sysUser) {
		this.sysUser = sysUser;
	}

	public Subject getSubject() {
		return subject;
	}

	public void setSubject(Subject subject) {
		this.subject = subject;
	}

	public Long getExaminationBasicId() {
		return examinationBasicId;
	}

	public void setExaminationBasicId(Long examinationBasicId) {
		this.examinationBasicId = examinationBasicId;
	}

	public ExaminationBasic getExaminationBasic() {
		return examinationBasic;
	}

	public void setExaminationBasic(ExaminationBasic examinationBasic) {
		this.examinationBasic = examinationBasic;
	}

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

	public Integer getOrganId() {
		return organId;
	}

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

	public void setSubjectId(Integer subjectId){
		this.subjectId = subjectId;
	}
	
	public Integer getSubjectId(){
		return this.subjectId;
	}
			
	public void setLevel(Integer level){
		this.level = level;
	}
	
	public Integer getLevel(){
		return this.level;
	}
			
	public void setSongJson(String songJson){
		this.songJson = songJson;
	}
	
	public String getSongJson(){
		return this.songJson;
	}
			
	public void setLastExamLevel(Integer lastExamLevel){
		this.lastExamLevel = lastExamLevel;
	}
	
	public Integer getLastExamLevel(){
		return this.lastExamLevel;
	}
			
	public void setLastExamCertificateUrl(String lastExamCertificateUrl){
		this.lastExamCertificateUrl = lastExamCertificateUrl;
	}
	
	public String getLastExamCertificateUrl(){
		return this.lastExamCertificateUrl;
	}
			
	public void setAdviserName(String adviserName){
		this.adviserName = adviserName;
	}
	
	public String getAdviserName(){
		return this.adviserName;
	}
			
	public void setAdviserPhone(String adviserPhone){
		this.adviserPhone = adviserPhone;
	}
	
	public String getAdviserPhone(){
		return this.adviserPhone;
	}

	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	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 setTenantId(String tenantId){
		this.tenantId = tenantId;
	}
	
	public String getTenantId(){
		return this.tenantId;
	}

	public String getMemo() {
		return memo;
	}

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

	public Long getExamSubjectSongId() {
		return examSubjectSongId;
	}

	public void setExamSubjectSongId(Long examSubjectSongId) {
		this.examSubjectSongId = examSubjectSongId;
	}

	public Integer getExamMusicTheoryId() {
		return examMusicTheoryId;
	}

	public void setExamMusicTheoryId(Integer examMusicTheoryId) {
		this.examMusicTheoryId = examMusicTheoryId;
	}
	public Integer getExamMusicTheoryLevel() {
		return examMusicTheoryLevel;
	}

	public void setExamMusicTheoryLevel(Integer examMusicTheoryLevel) {
		this.examMusicTheoryLevel = examMusicTheoryLevel;
	}

	public BigDecimal getLevelFee() {
		return levelFee;
	}

	public void setLevelFee(BigDecimal levelFee) {
		this.levelFee = levelFee;
	}

	public BigDecimal getTheoryLevelFee() {
		return theoryLevelFee;
	}

	public void setTheoryLevelFee(BigDecimal theoryLevelFee) {
		this.theoryLevelFee = theoryLevelFee;
	}

	public Integer getLastMusicTheoryLevel() {
		return lastMusicTheoryLevel;
	}

	public void setLastMusicTheoryLevel(Integer lastMusicTheoryLevel) {
		this.lastMusicTheoryLevel = lastMusicTheoryLevel;
	}

	public String getLastMusicTheoryCertificateUrl() {
		return lastMusicTheoryCertificateUrl;
	}

	public void setLastMusicTheoryCertificateUrl(String lastMusicTheoryCertificateUrl) {
		this.lastMusicTheoryCertificateUrl = lastMusicTheoryCertificateUrl;
	}

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

}
