package com.sundot.airport.exam.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sundot.airport.exam.common.model.BaseEntity;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <b>功能名：</b>WeakModuleRule<br>
 * <b>说明：</b> 薄弱项出题规则配置表 <br>
 * <b>著作权：</b> Copyright (C) 2025 SUNDOT CORPORATION<br>
 * <b>修改履历：
 *
 * @author Simon Lin
 */
@TableName("edu_cs_weak_module_rule")
public class WeakModuleRule extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 业务主键
     */
    private String wmrId;

    /**
     * 规则名称
     */
    private String wmrName;

    /**
     * 错题权重（影响因子1占比，范围0-1）
     */
    private BigDecimal wmrWrongAnswerWeight;

    /**
     * 巡检问题权重（影响因子2占比，范围0-1）
     */
    private BigDecimal wmrCheckProblemWeight;

    /**
     * 第1薄弱模块出题占比（如0.40表示40%）
     */
    private BigDecimal wmrTop1Ratio;

    /**
     * 第2薄弱模块出题占比（如0.15表示15%）
     */
    private BigDecimal wmrTop2Ratio;

    /**
     * 第3薄弱模块出题占比（如0.05表示5%）
     */
    private BigDecimal wmrTop3Ratio;

    /**
     * 统计天数（向前统计多少天的数据）
     */
    private Integer wmrStatsDays;

    /**
     * 启用状态（0停用 1启用）
     */
    private Boolean wmrEnableStatus;

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

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getWmrId() {
        return wmrId;
    }

    public void setWmrId(String wmrId) {
        this.wmrId = wmrId;
    }

    public String getWmrName() {
        return wmrName;
    }

    public void setWmrName(String wmrName) {
        this.wmrName = wmrName;
    }

    public BigDecimal getWmrWrongAnswerWeight() {
        return wmrWrongAnswerWeight;
    }

    public void setWmrWrongAnswerWeight(BigDecimal wmrWrongAnswerWeight) {
        this.wmrWrongAnswerWeight = wmrWrongAnswerWeight;
    }

    public BigDecimal getWmrCheckProblemWeight() {
        return wmrCheckProblemWeight;
    }

    public void setWmrCheckProblemWeight(BigDecimal wmrCheckProblemWeight) {
        this.wmrCheckProblemWeight = wmrCheckProblemWeight;
    }

    public BigDecimal getWmrTop1Ratio() {
        return wmrTop1Ratio;
    }

    public void setWmrTop1Ratio(BigDecimal wmrTop1Ratio) {
        this.wmrTop1Ratio = wmrTop1Ratio;
    }

    public BigDecimal getWmrTop2Ratio() {
        return wmrTop2Ratio;
    }

    public void setWmrTop2Ratio(BigDecimal wmrTop2Ratio) {
        this.wmrTop2Ratio = wmrTop2Ratio;
    }

    public BigDecimal getWmrTop3Ratio() {
        return wmrTop3Ratio;
    }

    public void setWmrTop3Ratio(BigDecimal wmrTop3Ratio) {
        this.wmrTop3Ratio = wmrTop3Ratio;
    }

    public Integer getWmrStatsDays() {
        return wmrStatsDays;
    }

    public void setWmrStatsDays(Integer wmrStatsDays) {
        this.wmrStatsDays = wmrStatsDays;
    }

    public Boolean getWmrEnableStatus() {
        return wmrEnableStatus;
    }

    public void setWmrEnableStatus(Boolean wmrEnableStatus) {
        this.wmrEnableStatus = wmrEnableStatus;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "WeakModuleRule{" +
                "id=" + id +
                ", wmrId='" + wmrId + '\'' +
                ", wmrName='" + wmrName + '\'' +
                ", wmrWrongAnswerWeight=" + wmrWrongAnswerWeight +
                ", wmrCheckProblemWeight=" + wmrCheckProblemWeight +
                ", wmrTop1Ratio=" + wmrTop1Ratio +
                ", wmrTop2Ratio=" + wmrTop2Ratio +
                ", wmrTop3Ratio=" + wmrTop3Ratio +
                ", wmrStatsDays=" + wmrStatsDays +
                ", wmrEnableStatus=" + wmrEnableStatus +
                ", remark='" + remark + '\'' +
                '}';
    }
}
