package org.dromara.art.domain;

import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import org.apache.ibatis.type.ArrayTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.math.BigDecimal;

/**
 * 学校详细信息对象 art_school_detail
 *
 * @author ZhouWenTao
 * @date 2026-02-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "art_school_detail", autoResultMap = true)
public class ArtSchoolDetail extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "detail_id")
    private Long detailId;

    /**
     * 关联学校主表ID
     */
    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是
     */
    @TableField("is_985")
    private Integer is985;

    /**
     * 是否211：0否1是
     */
    @TableField("is_211")
    private Integer is211;

    /**
     * 是否双一流：0否1是
     */
    @TableField("is_double_first_class")
    private Integer isDoubleFirstClass;

    /**
     * 是否省重点：0否1是
     */
    @TableField("is_key_university")
    private Integer isKeyUniversity;

    /**
     * 是否公办：0否1是
     */
    @TableField("is_public")
    private Integer isPublic;

    /**
     * 学校标签数组
     */
    @TableField(typeHandler = ArrayTypeHandler.class)
    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;

    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @TableLogic
    private String delFlag;

    /**
     * 备注
     */
    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;
}
