package org.dromara.art.domain.bo;

import org.dromara.art.domain.ArtSchoolDetail;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.math.BigDecimal;

/**
 * 学校详细信息业务对象 art_school_detail
 *
 * @author ZhouWenTao
 * @date 2026-02-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ArtSchoolDetail.class, reverseConvertGenerate = false)
public class ArtSchoolDetailBo extends BaseEntity {

    /**
     * 主键ID
     */
    @NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
    private Long detailId;

    /**
     * 关联学校主表ID
     */
    @NotNull(message = "关联学校主表ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long schoolId;

    /**
     * 学校详细介绍（大文本）
     */
    private String introduction;

    /**
     * 校徽
     */
    private String schoolIcon;

    /**
     * 背景图
     */
    private String backGround;

    /**
     * 学校地址
     */
    private String address;

    /**
     * 联系电话
     */
    private String contact;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 官网地址
     */
    private String website;

    /**
     * 邮编
     */
    private String postcode;

    /**
     * 建校年份
     */
    private Integer establishYear;

    /**
     * 占地面积(亩)
     */
    private BigDecimal campusAreaMu;

    /**
     * 图书馆藏书量
     */
    private Long libraryCollection;

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

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

    /**
     * 是否985：0否1是
     */
    private Integer is985;

    /**
     * 是否211：0否1是
     */
    private Integer is211;

    /**
     * 是否双一流：0否1是
     */
    private Integer isDoubleFirstClass;

    /**
     * 是否省重点：0否1是
     */
    private Integer isKeyUniversity;

    /**
     * 是否公办：0否1是
     */
    private Integer isPublic;

    /**
     * 学校标签数组
     */
    private String[] tags;

    /**
     * 在校学生数
     */
    private Long studentCount;

    /**
     * 教职工人数
     */
    private Long teacherCount;

    /**
     * 硕士点数量
     */
    private Integer masterPoint;

    /**
     * 博士点数量
     */
    private Integer doctorPoint;

    /**
     * 国家级重点专业数
     */
    private Integer keyMajorCount;

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

    /**
     * 院校满意度
     */
    private BigDecimal satisfactionRate;

    /**
     * 外部院校ID
     */
    private Integer univId;

    /**
     * 备注
     */
    private String remark;

    /**
     * 考研率
     */
    private BigDecimal masterProportionRate;

    /**
     * 出国率
     */
    private BigDecimal abroadProportionRate;

    /**
     * 是否有普通本科：0否1是
     */
    private Integer hasRegular;

    /**
     * 是否有专科：0否1是
     */
    private Integer hasJunior;

    /**
     * 是否有硕士点：0否1是
     */
    private Integer hasMaster;

    /**
     * 是否双高计划：0否1是
     */
    private Integer isDoubleHighPlan;

    /**
     * 是否强基计划：0否1是
     */
    private Integer isStrongPlan;

    /**
     * 泰晤士中国排名
     */
    private Integer twsdlRank;

    /**
     * 校友会排名
     */
    private Integer xyhRank;

    /**
     * 武书连排名
     */
    private Integer wslRank;

    /**
     * US中国排名
     */
    private Integer usdaluRank;

    /**
     * QS排名
     */
    private Integer qsdaluRank;

    /**
     * 综合评分
     */
    private BigDecimal combinedScore;

    /**
     * 综合排名
     */
    private Integer overallRank;

    /**
     * 环境满意度
     */
    private BigDecimal envSatisfaction;

    /**
     * 环境满意度投票数
     */
    private Integer envVote;

    /**
     * 生活满意度
     */
    private BigDecimal liveSatisfaction;

    /**
     * 生活满意度投票数
     */
    private Integer liveVote;

    /**
     * 综合满意度(原始分)
     */
    private BigDecimal combinedSatisfaction;

    /**
     * 综合满意度投票数
     */
    private Integer combinedVote;

    /**
     * 满意度明细JSON
     */
    private String satisfactionJson;

    /**
     * 师资力量描述
     */
    private String teachers;

    /**
     * 奖学金说明
     */
    private String scholarship;

    /**
     * 奖学金数组JSON
     */
    private String scholarshipJson;

    /**
     * 助学金说明
     */
    private String grantDesc;

    /**
     * 食堂说明
     */
    private String canteen;

    /**
     * 宿舍说明
     */
    private String dormitory;

    /**
     * 硕士点说明
     */
    private String masterExplain;

    /**
     * 博士点说明
     */
    private String doctorExplain;

    /**
     * 特色专业JSON
     */
    private String specialMajorJson;

    /**
     * 就业报告JSON
     */
    private String employmentReportJson;

    /**
     * 图片JSON
     */
    private String photoJson;

    /**
     * 建筑/配套JSON
     */
    private String accommodationJson;

    /**
     * 学科评估JSON
     */
    private String subjectReviewsJson;

    /**
     * 科研信息JSON
     */
    private String researchJson;

    /**
     * 专业标签JSON
     */
    private String univMajorsJson;

    /**
     * 保研信息JSON
     */
    private String univPostgraduateJson;
}
