package com.ruoyi.mall.domain.Vo;

import com.ruoyi.common.annotation.Excel;


import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 学校信息VO类
 *
 * @author 萌
 * @date 2023-10-18
 */

public class SchoolVO implements Serializable , Comparable{

    private static final long serialVersionUID = 1L;

    /** 学校主键ID */
    private Long schoolId;

    /** 学校名 */
    private String schoolName;

    /** 学校图标 */
    private String schoolIcon;

    /** 学校背景图 */
    private String backgroundImage;

    /** 学校简要介绍 */
    private String schoolIntroduce;

    /** 学校简介缩略 */
    private String schoolIntroduceShort;

    /** 学校编号 */
    private String schoolNumber;

    /** 学校类型名（例：综合类、理工类等）*/
    private String configTypeName;

    /** 办学机构：0-公办，1-民办，3-中外合作办学，4其他 */
    private String schoolInstitution;

    /** 主管部门（教育部、各地市） */
    @Excel(name = "主管部门")
    private String competentDepartment;

    /** 省份名 */
    private String provinceName;

    /** 城市名 */
    private String cityName;

    /** 区县名 */
    private String areaName;

    /** 地址 */
    private String address;

    /** 标签id集合 */
    private String tags;

    /** 标签名集合 */
    private List<String> tagList;

    /** 学校官网 */
    private String schoolWeb;

    /** 招生电话 */
    private String acceptPhone;

    /** 学校邮箱 */
    private String schoolMail;

    /** 创办时间 */
    private String schoolBirthday;

    /** 占地面积 */
    private String areaSize;

    /** 男比例 */
    private BigDecimal maleRatio;

    /** 女比例 */
    private BigDecimal femaleRatio;

    /** 保研率 */
    private BigDecimal postgraduateRatio;

    /** 就业率 */
    private BigDecimal offerRatio;

    /** 学校特色介绍 */
    private List<SchoolIntroduceVO> schoolIntroduceList;

    /** 学院专业信息 */
    private SchoolFacultyVO schoolFaculty;

    /** 录取最低分 */
    private Integer lowestScore;

    /** 学校层次 */
    private Long configLevelId;

    /** 办学层次 */
    private String configLevelName;

    /** 录取率 */
    private BigDecimal acceptRate;

    /** 录取率百分比展示 */
    private String showAcceptRate;

    /** 录取率类型 */
    private Integer rateType;

    /** 目标状态(0-不是,1-是) */
    private Integer targetStatus;

    /** 警告状态(0-较危险,1-较安全) */
    private Integer warnStatus;

    /** 文化分数线 */
    private Integer cultureLowest;


    /** 专业分数线 */
    private Integer majorLowest;

    /** 专业代码 */
    private String majorCode;

    /** 专业名 */
    private String majorName;

    /** 专业组 */
    private String majorGroup;

    /** 专业组编号 */
    private Integer majorGroupNum;

    /** 批次id */
    private Long batchId;

    /** 是否已添加对比 */
    private String recordType; //0未添加 1已添加

    /** 对比记录id */
    private Long recordId;

    /** 保研率列表 */
    private List<MasterRateVO> masterRateList;

    /** 专业列表 */
    private List<MajorItemVo> majorList;

    /** 学科评估 */
    private List<String> assessList;

    /** 硕士点详情*/
    private String mastersDegreeDetail;

    /** 博士点详情 */
    private String doctorateDetail;

    /** 硕士点研究方向 */
    private String mastersDegreeDirection;

    /** 博士点研究方向 */
    private String doctorateDirection;

    /** 是否意向学校(0-否,1-是) */
    private Integer expectStatus;

    /** 综合实力排名(软科)*/
    private String ranking;

    /** 学校录取前提*/
    private String acceptPremise;

    /** 批次名 */
    private String batchName;

    public String getBatchName() {
        return batchName;
    }

    public void setBatchName(String batchName) {
        this.batchName = batchName;
    }

    public String getRanking() {
        return ranking;
    }

    public void setRanking(String ranking) {
        this.ranking = ranking;
    }

    public Integer getExpectStatus() {
        return expectStatus;
    }

    public void setExpectStatus(Integer expectStatus) {
        this.expectStatus = expectStatus;
    }

    public List<String> getAssessList() {
        return assessList;
    }

    public void setAssessList(List<String> assessList) {
        this.assessList = assessList;
    }

    public String getMastersDegreeDetail() {
        return mastersDegreeDetail;
    }

    public void setMastersDegreeDetail(String mastersDegreeDetail) {
        this.mastersDegreeDetail = mastersDegreeDetail;
    }

    public String getDoctorateDetail() {
        return doctorateDetail;
    }

    public void setDoctorateDetail(String doctorateDetail) {
        this.doctorateDetail = doctorateDetail;
    }

    public String getMastersDegreeDirection() {
        return mastersDegreeDirection;
    }

    public void setMastersDegreeDirection(String mastersDegreeDirection) {
        this.mastersDegreeDirection = mastersDegreeDirection;
    }

    public String getDoctorateDirection() {
        return doctorateDirection;
    }

    public void setDoctorateDirection(String doctorateDirection) {
        this.doctorateDirection = doctorateDirection;
    }

    public List<MajorItemVo> getMajorList() {
        return majorList;
    }

    public String getConfigLevelName() {
        return configLevelName;
    }

    public void setConfigLevelName(String configLevelName) {
        this.configLevelName = configLevelName;
    }

    public void setMajorList(List<MajorItemVo> majorList) {
        this.majorList = majorList;
    }

    public List<MasterRateVO> getMasterRateList() {
        return masterRateList;
    }

    public void setMasterRateList(List<MasterRateVO> masterRateList) {
        this.masterRateList = masterRateList;
    }

    public Long getRecordId() {
        return recordId;
    }

    public void setRecordId(Long recordId) {
        this.recordId = recordId;
    }

    public Long getBatchId() {
        return batchId;
    }

    public void setBatchId(Long batchId) {
        this.batchId = batchId;
    }

    public String getMajorCode() {
        return majorCode;
    }

    public void setMajorCode(String majorCode) {
        this.majorCode = majorCode;
    }

    public String getMajorName() {
        return majorName;
    }

    public void setMajorName(String majorName) {
        this.majorName = majorName;
    }

    public String getMajorGroup() {
        return majorGroup;
    }

    public void setMajorGroup(String majorGroup) {
        this.majorGroup = majorGroup;
    }

    public Integer getMajorGroupNum() {
        return majorGroupNum;
    }

    public void setMajorGroupNum(Integer majorGroupNum) {
        this.majorGroupNum = majorGroupNum;
    }

    public Integer getCultureLowest() {
        return cultureLowest;
    }

    public void setCultureLowest(Integer cultureLowest) {
        this.cultureLowest = cultureLowest;
    }

    public Integer getMajorLowest() {
        return majorLowest;
    }

    public void setMajorLowest(Integer majorLowest) {
        this.majorLowest = majorLowest;
    }

    public Integer getWarnStatus() {
        return warnStatus;
    }

    public void setWarnStatus(Integer warnStatus) {
        this.warnStatus = warnStatus;
    }

    public Integer getTargetStatus() {
        return targetStatus;
    }

    public void setTargetStatus(Integer targetStatus) {
        this.targetStatus = targetStatus;
    }

    public String getShowAcceptRate() {
        return showAcceptRate;
    }

    public void setShowAcceptRate(String showAcceptRate) {
        this.showAcceptRate = showAcceptRate;
    }

    public Integer getRateType() {
        return rateType;
    }

    public void setRateType(Integer rateType) {
        this.rateType = rateType;
    }

    public BigDecimal getAcceptRate() {
        return acceptRate;
    }

    public void setAcceptRate(BigDecimal acceptRate) {
        this.acceptRate = acceptRate;
    }

    public Long getConfigLevelId() {
        return configLevelId;
    }

    public void setConfigLevelId(Long configLevelId) {
        this.configLevelId = configLevelId;
    }

    public Integer getLowestScore() {
        return lowestScore;
    }

    public void setLowestScore(Integer lowestScore) {
        this.lowestScore = lowestScore;
    }

    public Long getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(Long schoolId) {
        this.schoolId = schoolId;
    }

    public String getSchoolName() {
        return schoolName;
    }

    public void setSchoolName(String schoolName) {
        this.schoolName = schoolName;
    }

    public String getSchoolIcon() {
        return schoolIcon;
    }

    public void setSchoolIcon(String schoolIcon) {
        this.schoolIcon = schoolIcon;
    }

    public String getBackgroundImage() {
        return backgroundImage;
    }

    public void setBackgroundImage(String backgroundImage) {
        this.backgroundImage = backgroundImage;
    }

    public String getSchoolIntroduce() {
        return schoolIntroduce;
    }

    public void setSchoolIntroduce(String schoolIntroduce) {
        this.schoolIntroduce = schoolIntroduce;
    }

    public String getSchoolIntroduceShort() {
        return schoolIntroduceShort;
    }

    public void setSchoolIntroduceShort(String schoolIntroduceShort) {
        this.schoolIntroduceShort = schoolIntroduceShort;
    }

    public String getSchoolNumber() {
        return schoolNumber;
    }

    public void setSchoolNumber(String schoolNumber) {
        this.schoolNumber = schoolNumber;
    }

    public String getConfigTypeName() {
        return configTypeName;
    }

    public void setConfigTypeName(String configTypeName) {
        this.configTypeName = configTypeName;
    }

    public String getSchoolInstitution() {
        return schoolInstitution;
    }

    public void setSchoolInstitution(String schoolInstitution) {
        this.schoolInstitution = schoolInstitution;
    }

    public String getCompetentDepartment() {
        return competentDepartment;
    }

    public void setCompetentDepartment(String competentDepartment) {
        this.competentDepartment = competentDepartment;
    }

    public String getProvinceName() {
        return provinceName;
    }

    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public String getAreaName() {
        return areaName;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getTags() {
        return tags;
    }

    public void setTags(String tags) {
        this.tags = tags;
    }

    public List<String> getTagList() {
        return tagList;
    }

    public void setTagList(List<String> tagList) {
        this.tagList = tagList;
    }

    public String getSchoolWeb() {
        return schoolWeb;
    }

    public void setSchoolWeb(String schoolWeb) {
        this.schoolWeb = schoolWeb;
    }

    public String getAcceptPhone() {
        return acceptPhone;
    }

    public void setAcceptPhone(String acceptPhone) {
        this.acceptPhone = acceptPhone;
    }

    public String getSchoolMail() {
        return schoolMail;
    }

    public void setSchoolMail(String schoolMail) {
        this.schoolMail = schoolMail;
    }

    public String getSchoolBirthday() {
        return schoolBirthday;
    }

    public void setSchoolBirthday(String schoolBirthday) {
        this.schoolBirthday = schoolBirthday;
    }

    public String getAreaSize() {
        return areaSize;
    }

    public void setAreaSize(String areaSize) {
        this.areaSize = areaSize;
    }

    public BigDecimal getMaleRatio() {
        return maleRatio;
    }

    public void setMaleRatio(BigDecimal maleRatio) {
        this.maleRatio = maleRatio;
    }

    public BigDecimal getFemaleRatio() {
        return femaleRatio;
    }

    public void setFemaleRatio(BigDecimal femaleRatio) {
        this.femaleRatio = femaleRatio;
    }

    public BigDecimal getPostgraduateRatio() {
        return postgraduateRatio;
    }

    public void setPostgraduateRatio(BigDecimal postgraduateRatio) {
        this.postgraduateRatio = postgraduateRatio;
    }

    public BigDecimal getOfferRatio() {
        return offerRatio;
    }

    public void setOfferRatio(BigDecimal offerRatio) {
        this.offerRatio = offerRatio;
    }

    public List<SchoolIntroduceVO> getSchoolIntroduceList() {
        return schoolIntroduceList;
    }

    public void setSchoolIntroduceList(List<SchoolIntroduceVO> schoolIntroduceList) {
        this.schoolIntroduceList = schoolIntroduceList;
    }

    public SchoolFacultyVO getSchoolFaculty() {
        return schoolFaculty;
    }

    public void setSchoolFaculty(SchoolFacultyVO schoolFaculty) {
        this.schoolFaculty = schoolFaculty;
    }

    public String getRecordType() {
        return recordType;
    }

    public void setRecordType(String recordType) {
        this.recordType = recordType;
    }

    public String getAcceptPremise() {
        return acceptPremise;
    }

    public void setAcceptPremise(String acceptPremise) {
        this.acceptPremise = acceptPremise;
    }

    @Override
    public String toString() {
        return "SchoolVO{" +
                "schoolId=" + schoolId +
                ", schoolName='" + schoolName + '\'' +
                ", schoolIcon='" + schoolIcon + '\'' +
                ", backgroundImage='" + backgroundImage + '\'' +
                ", schoolIntroduce='" + schoolIntroduce + '\'' +
                ", schoolIntroduceShort='" + schoolIntroduceShort + '\'' +
                ", schoolNumber='" + schoolNumber + '\'' +
                ", configTypeName='" + configTypeName + '\'' +
                ", schoolInstitution='" + schoolInstitution + '\'' +
                ", competentDepartment='" + competentDepartment + '\'' +
                ", provinceName='" + provinceName + '\'' +
                ", cityName='" + cityName + '\'' +
                ", areaName='" + areaName + '\'' +
                ", address='" + address + '\'' +
                ", tags='" + tags + '\'' +
                ", tagList=" + tagList +
                ", schoolWeb='" + schoolWeb + '\'' +
                ", acceptPhone='" + acceptPhone + '\'' +
                ", schoolMail='" + schoolMail + '\'' +
                ", schoolBirthday='" + schoolBirthday + '\'' +
                ", areaSize='" + areaSize + '\'' +
                ", maleRatio=" + maleRatio +
                ", femaleRatio=" + femaleRatio +
                ", postgraduateRatio=" + postgraduateRatio +
                ", offerRatio=" + offerRatio +
                ", schoolIntroduceList=" + schoolIntroduceList +
                ", schoolFaculty=" + schoolFaculty +
                ", lowestScore=" + lowestScore +
                ", configLevelId=" + configLevelId +
                ", configLevelName='" + configLevelName + '\'' +
                ", acceptRate=" + acceptRate +
                ", showAcceptRate='" + showAcceptRate + '\'' +
                ", rateType=" + rateType +
                ", targetStatus=" + targetStatus +
                ", warnStatus=" + warnStatus +
                ", cultureLowest=" + cultureLowest +
                ", majorLowest=" + majorLowest +
                ", majorCode='" + majorCode + '\'' +
                ", majorName='" + majorName + '\'' +
                ", majorGroup='" + majorGroup + '\'' +
                ", majorGroupNum=" + majorGroupNum +
                ", batchId=" + batchId +
                ", recordType='" + recordType + '\'' +
                ", recordId=" + recordId +
                ", masterRateList=" + masterRateList +
                ", majorList=" + majorList +
                ", assessList=" + assessList +
                ", mastersDegreeDetail='" + mastersDegreeDetail + '\'' +
                ", doctorateDetail='" + doctorateDetail + '\'' +
                ", mastersDegreeDirection='" + mastersDegreeDirection + '\'' +
                ", doctorateDirection='" + doctorateDirection + '\'' +
                ", expectStatus=" + expectStatus +
                ", ranking='" + ranking + '\'' +
                ", acceptPremise='" + acceptPremise + '\'' +
                '}';
    }

    @Override
    public int compareTo(Object o) {
        if(!(o instanceof SchoolVO)){
            throw new RuntimeException("Not SchoolVO object");
        }
        SchoolVO s = (SchoolVO) o;
        return 0;
    }
}
