package org.dromara.art.domain.bo;

import org.dromara.art.domain.ArtSchoolRecruitMajor;
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
 *
 * @author ZhouWenTao
 * @date 2026-02-20
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ArtSchoolRecruitMajor.class, reverseConvertGenerate = false)
public class ArtSchoolRecruitMajorBo extends BaseEntity {

    /**
     * 院校招录专业ID
     */
    @NotNull(message = "院校招录专业ID不能为空", groups = { 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;

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

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

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

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

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

    /**
     * 招生代码(为空则存空串)
     */
    @NotBlank(message = "招生代码(为空则存空串)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String enrollCode;

    /**
     * 数据状态(停招/新招/新增)
     */
    @NotBlank(message = "数据状态(停招/新招/新增)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dataStatus;

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

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

    /**
     * 二级专业类型
     */
    private String majorTypeSub;

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

    /**
     * 录取方式缩写
     */
    private String admissionWayShort;

    /**
     * 对外录取方式
     */
    private String admissionWayExternal;

    /**
     * 对外录取方式运算符
     */
    private String admissionWayExternalOp;

    /**
     * 内部录取方式
     */
    private String admissionWayInternal;

    /**
     * 内部录取方式运算符
     */
    private String admissionWayInternalOp;

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

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

    /**
     * 学制(年)
     */
    private Long schoolingYears;

    /**
     * 院校限制说明
     */
    private String enrollLimitDesc;

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

    /**
     * 文化分数限制
     */
    private Long cultureScoreLimit;

    /**
     * 专业分数限制
     */
    private Long majorScoreLimit;

    /**
     * 语文成绩限制
     */
    private Long chineseScoreLimit;

    /**
     * 英语成绩限制
     */
    private Long englishScoreLimit;

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


}
