package org.dromara.safety.domain.bo;

import org.dromara.safety.domain.BusQuestionsConfig;
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.*;

/**
 * 题库配置业务对象 bus_questions_config
 *
 * @author lcj
 * @date 2025-03-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusQuestionsConfig.class, reverseConvertGenerate = false)
public class BusQuestionsConfigBo extends BaseEntity {

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

    /**
     * 单选题（单位/道）
     */
    @NotNull(message = "单选题（单位/道）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long singleChoice;

    /**
     * 单选分数
     */
    @NotNull(message = "单选分数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long singleScore;

    /**
     * 多选题（单位/道）
     */
    @NotNull(message = "多选题（单位/道）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long multipleChoice;

    /**
     * 多选分数
     */
    @NotNull(message = "多选分数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long multipleScore;

    /**
     * 判断题（单位/道）
     */
    @NotNull(message = "判断题（单位/道）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long estimate;

    /**
     * 判断分数
     */
    @NotNull(message = "判断分数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long estimateScore;

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

    /**
     * 及格线
     */
    @NotNull(message = "及格线不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long passScore;

    /**
     * 答题最大时间（单位/分钟）
     */
    @NotNull(message = "答题最大时间（单位/分钟）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long answerTime;


}
