package org.dromara.art.domain.bo;

import org.dromara.art.domain.ArtSchoolRecruitMajorHistory;
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.*;

/**
 * 院校招录专业历年录取数据业务对象 art_school_recruit_major_history
 *
 * @author ZhouWenTao
 * @date 2026-02-20
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ArtSchoolRecruitMajorHistory.class, reverseConvertGenerate = false)
public class ArtSchoolRecruitMajorHistoryBo extends BaseEntity {

    /**
     * 历年录取数据ID
     */
    @NotNull(message = "历年录取数据ID不能为空", groups = { EditGroup.class })
    private Long historyId;

    /**
     * 对应招录专业ID
     */
    @NotNull(message = "对应招录专业ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long recruitMajorId;

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

    /**
     * 学校代码
     */
    @NotBlank(message = "学校代码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String schoolCode;

    /**
     * 院校代码
     */
    private String collegeCode;

    /**
     * 学校名称
     */
    @NotBlank(message = "学校名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String schoolName;

    /**
     * 专业ID
     */
    private Long majorId;

    /**
     * 专业代码
     */
    @NotBlank(message = "专业代码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String majorCode;

    /**
     * 专业名称
     */
    @NotBlank(message = "专业名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String majorName;

    /**
     * 招生代码
     */
    private String enrollCode;

    /**
     * 专业类型
     */
    private String majorType;

    /**
     * 专业类别子级
     */
    private String majorTypeSub;

    /**
     * 主考科目
     */
    private String mainExamSubject;

    /**
     * 年份
     */
    @NotNull(message = "年份不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long year;

    /**
     * 科类(文/理)
     */
    private String subjectType;

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

    /**
     * 录取方式(文*x+专*y)
     */
    private String admissionFormula;

    /**
     * 录取概率规则运算符
     */
    private String probabilityOperator;

    /**
     * 省控线
     */
    private Long controlScore;

    /**
     * 录取线
     */
    private Long admissionScore;

    /**
     * 招生人数
     */
    private Long planEnroll;

    /**
     * 实际投档人数
     */
    private Long filedAmount;

    /**
     * 录取数
     */
    private Long admitAmount;

    /**
     * 一志愿录取数
     */
    private Long firstChoiceAdmitAmount;

    /**
     * 最低分数差
     */
    private Long minScoreDiff;

    /**
     * 学费(元/年)
     */
    private Long tuitionFee;

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


}
