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

import com.ym.mec.biz.dal.entity.SubjectChange;
import com.ym.mec.biz.dal.enums.PaymentFlagEnum;
import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
import io.swagger.annotations.ApiModelProperty;

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

public class MusicGroupStudentsDto{

    @ApiModelProperty(value = "学生乐团注册编号",required = false)
    private Integer studentRegistrationId;

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

    @ApiModelProperty(value = "姓名",required = false)
    private String realName;

    @ApiModelProperty(value = "性别",required = false)
    private String gender;

    @ApiModelProperty(value = "手机号",required = false)
    private String phone;

    @ApiModelProperty(value = "年级年份",required = false)
    private Date currentGradeDate;

    @ApiModelProperty(value = "年级",required = false)
    private String currentGrade;

    @ApiModelProperty(value = "班级",required = false)
    private String currentClass;

    @ApiModelProperty(value = "实际专业id",required = false)
    private Integer subjectId;

    @ApiModelProperty(value = "实际专业",required = false)
    private String subjectName;

    @ApiModelProperty(value = "报名专业id",required = false)
    private Integer regSubjectId;

    @ApiModelProperty(value = "报名专业",required = false)
    private String regSubjectName;

    @ApiModelProperty(value = "下次缴费日期",required = false)
    private Date nextPaymentDate;

    @ApiModelProperty(value = "课程费用",required = false)
    private BigDecimal courseFee;

    @ApiModelProperty(value = "乐团编号",required = false)
    private String musicGroupId;

    @ApiModelProperty(value = "学员状态 NORMAL(NORMAL, 在读), LEAVE(LEAVE, 请假), QUIT(QUIT, 退班)",required = false)
    private String studentStatus;

    @ApiModelProperty(value = "退团原因",required = false)
    private String quitReason;

    private PaymentStatusEnum paymentStatus;

    @ApiModelProperty(value = "是否新增学员（1是0否）",required = false)
    private Integer isNewStudent;

    @ApiModelProperty(value = "入团时间",required = false)
    private Date registerTime;

    private Boolean isActive = false;

    private Boolean hasCourse;

    private Integer isLock;

    private String paymentPeriodList;

    private String activeName;

    private String isNewStudentStr;

    private String nextPaymentDateStr;

    @ApiModelProperty(value = "剩余可排课时长",required = false)
    private BigDecimal subTotalCourseTime;

    @ApiModelProperty(value = "欠费金额",required = false)
    private BigDecimal noPaymentAmount = BigDecimal.ZERO;

    @ApiModelProperty(value = "关心包：0：默认不可用；1：可用；2：已使用;")
    private Integer carePackage;
    private String carePackageStr;

    @ApiModelProperty(value = "加油包：0：默认不可用；1：可用；2：已使用;")
    private Integer comeOnPackage;
    private String comeOnPackageStr;

    @ApiModelProperty(value = "是否有乐保",required = false)
    private Boolean hasMaintenance = false;

    @ApiModelProperty(value = "云教练金额",required = false)
    private BigDecimal cloudTeacherAmount = BigDecimal.ZERO;

    public Integer getStudentRegistrationId() {
        return studentRegistrationId;
    }

    public void setStudentRegistrationId(Integer studentRegistrationId) {
        this.studentRegistrationId = studentRegistrationId;
    }

    @ApiModelProperty(value = "备注信息",required = false)
    private String remark;


    @ApiModelProperty(value = "声部更换详情",required = false)
    private SubjectChange subjectChange;

    @ApiModelProperty(value = "会员截止时间",required = false)
    private Date membershipEndTime;

    @ApiModelProperty(value = "乐团会员时间，下次续费时间",required = false)
    private Date musicMembershipEndTime;

    @ApiModelProperty(value = "试用会员截止时间",required = false)
    private Date experienceMembershipEndTime;

    private Integer experienceMembershipDay;
    private Integer membershipDay;
    private Integer musicMembershipDay;
    private Integer musicMembershipDay1;
    //是否有未生效的云教练订单
    private Boolean hasNoStartCloudTeacher = false;

    private Integer memberRankSettingId;

    public Integer getMusicMembershipDay1() {
        return musicMembershipDay1;
    }

    public void setMusicMembershipDay1(Integer musicMembershipDay1) {
        this.musicMembershipDay1 = musicMembershipDay1;
    }

    public Integer getMemberRankSettingId() {
        return memberRankSettingId;
    }

    public void setMemberRankSettingId(Integer memberRankSettingId) {
        this.memberRankSettingId = memberRankSettingId;
    }

    public Boolean getHasNoStartCloudTeacher() {
        return hasNoStartCloudTeacher;
    }

    public void setHasNoStartCloudTeacher(Boolean hasNoStartCloudTeacher) {
        this.hasNoStartCloudTeacher = hasNoStartCloudTeacher;
    }

    public Integer getExperienceMembershipDay() {
        return experienceMembershipDay;
    }

    public void setExperienceMembershipDay(Integer experienceMembershipDay) {
        this.experienceMembershipDay = experienceMembershipDay;
    }

    public Integer getMembershipDay() {
        return membershipDay;
    }

    public void setMembershipDay(Integer membershipDay) {
        this.membershipDay = membershipDay;
    }

    public Integer getMusicMembershipDay() {
        return musicMembershipDay;
    }

    public void setMusicMembershipDay(Integer musicMembershipDay) {
        this.musicMembershipDay = musicMembershipDay;
    }

    public Date getMusicMembershipEndTime() {
        return musicMembershipEndTime;
    }

    public void setMusicMembershipEndTime(Date musicMembershipEndTime) {
        this.musicMembershipEndTime = musicMembershipEndTime;
    }

    public Date getExperienceMembershipEndTime() {
        return experienceMembershipEndTime;
    }

    public void setExperienceMembershipEndTime(Date experienceMembershipEndTime) {
        this.experienceMembershipEndTime = experienceMembershipEndTime;
    }

    public Date getMembershipEndTime() {
        return membershipEndTime;
    }

    public void setMembershipEndTime(Date membershipEndTime) {
        this.membershipEndTime = membershipEndTime;
    }

    public String getCarePackageStr() {
        return carePackageStr;
    }

    public void setCarePackageStr(String carePackageStr) {
        this.carePackageStr = carePackageStr;
    }

    public String getComeOnPackageStr() {
        return comeOnPackageStr;
    }

    public void setComeOnPackageStr(String comeOnPackageStr) {
        this.comeOnPackageStr = comeOnPackageStr;
    }

    public Integer getCarePackage() {
        return carePackage;
    }

    public void setCarePackage(Integer carePackage) {
        this.carePackage = carePackage;
    }

    public Integer getComeOnPackage() {
        return comeOnPackage;
    }

    public void setComeOnPackage(Integer comeOnPackage) {
        this.comeOnPackage = comeOnPackage;
    }

    public Boolean getHasCourse() {
        return hasCourse;
    }

    public void setHasCourse(Boolean hasCourse) {
        this.hasCourse = hasCourse;
    }

    public BigDecimal getNoPaymentAmount() {
        return noPaymentAmount;
    }

    public void setNoPaymentAmount(BigDecimal noPaymentAmount) {
        this.noPaymentAmount = noPaymentAmount;
    }

    public BigDecimal getSubTotalCourseTime() {
        return subTotalCourseTime;
    }

    public void setSubTotalCourseTime(BigDecimal subTotalCourseTime) {
        this.subTotalCourseTime = subTotalCourseTime;
    }

    public String getPaymentPeriodList() {
        return paymentPeriodList;
    }

    public void setPaymentPeriodList(String paymentPeriodList) {
        this.paymentPeriodList = paymentPeriodList;
    }

    public Integer getIsLock() {
        return isLock;
    }

    public void setIsLock(Integer isLock) {
        this.isLock = isLock;
    }

    public Boolean getIsActive() {
        return isActive;
    }

    public void setIsActive(Boolean active) {
        isActive = active;
    }

    public Date getNextPaymentDate() {
        return nextPaymentDate;
    }

    public void setNextPaymentDate(Date nextPaymentDate) {
        this.nextPaymentDate = nextPaymentDate;
    }

    public BigDecimal getCourseFee() {
        return courseFee;
    }

    public void setCourseFee(BigDecimal courseFee) {
        this.courseFee = courseFee;
    }

    public Integer getUserId() {
        return userId;
    }

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

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getGender() {
        return gender;
    }

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

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getCurrentGrade() {
        return currentGrade;
    }

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

    public String getCurrentClass() {
        return currentClass;
    }

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

    public String getSubjectName() {
        return subjectName;
    }

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

    public String getMusicGroupId() {
        return musicGroupId;
    }

    public void setMusicGroupId(String musicGroupId) {
        this.musicGroupId = musicGroupId;
    }

    public String getStudentStatus() {
        return studentStatus;
    }

    public void setStudentStatus(String studentStatus) {
        this.studentStatus = studentStatus;
    }

    public PaymentStatusEnum getPaymentStatus() {
        return paymentStatus;
    }

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

    public Integer getIsNewStudent() {
        return isNewStudent;
    }

    public void setIsNewStudent(Integer isNewStudent) {
        this.isNewStudent = isNewStudent;
    }

    public String getActiveName() {
        return activeName;
    }

    public void setActiveName(String activeName) {
        this.activeName = activeName;
    }

    public String getIsNewStudentStr() {
        return isNewStudentStr;
    }

    public void setIsNewStudentStr(String isNewStudentStr) {
        this.isNewStudentStr = isNewStudentStr;
    }

    public String getNextPaymentDateStr() {
        return nextPaymentDateStr;
    }

    public void setNextPaymentDateStr(String nextPaymentDateStr) {
        this.nextPaymentDateStr = nextPaymentDateStr;
    }

    public String getQuitReason() {
        return quitReason;
    }

    public void setQuitReason(String quitReason) {
        this.quitReason = quitReason;
    }

    public Date getCurrentGradeDate() {
        return currentGradeDate;
    }

    public void setCurrentGradeDate(Date currentGradeDate) {
        this.currentGradeDate = currentGradeDate;
    }

    public Date getRegisterTime() {
        return registerTime;
    }

    public void setRegisterTime(Date registerTime) {
        this.registerTime = registerTime;
    }

    public String getRegSubjectName() {
        return regSubjectName;
    }

    public void setRegSubjectName(String regSubjectName) {
        this.regSubjectName = regSubjectName;
    }

    public Integer getSubjectId() {
        return subjectId;
    }

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

    public Integer getRegSubjectId() {
        return regSubjectId;
    }

    public void setRegSubjectId(Integer regSubjectId) {
        this.regSubjectId = regSubjectId;
    }

    public String getRemark() {
        return remark;
    }

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

    public SubjectChange getSubjectChange() {
        return subjectChange;
    }

    public void setSubjectChange(SubjectChange subjectChange) {
        this.subjectChange = subjectChange;
    }

    public Boolean getHasMaintenance() {
        return hasMaintenance;
    }

    public void setHasMaintenance(Boolean hasMaintenance) {
        this.hasMaintenance = hasMaintenance;
    }

    public BigDecimal getCloudTeacherAmount() {
        return cloudTeacherAmount;
    }

    public void setCloudTeacherAmount(BigDecimal cloudTeacherAmount) {
        this.cloudTeacherAmount = cloudTeacherAmount;
    }
}
