package com.sundot.airport.exam.domain;

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

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

/**
 * <b>功能名：</b>WeakModuleAnalysis<br>
 * <b>说明：</b> 薄弱模块分析表 <br>
 * <b>著作权：</b> Copyright (C) 2025 SUNDOT CORPORATION<br>
 * <b>修改履历：
 *
 * @author Simon Lin
 */
@TableName("edu_cs_weak_module_analysis")
public class WeakModuleAnalysis extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

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

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

    /**
     * 用户ID
     */
    private Long wmaUserId;

    /**
     * 模块ID
     */
    private String wmaModuleId;

    /**
     * 模块名称
     */
    private String wmaModuleName;

    /**
     * 该模块总答题数
     */
    private Integer wmaTotalCount;

    /**
     * 该模块正确题数
     */
    private Integer wmaCorrectCount;

    /**
     * 该模块正确率（%）
     */
    private BigDecimal wmaCorrectRate;

    /**
     * 近3次该模块总答题数
     */
    @TableField("wma_last_3_total")
    private Integer wmaLast3Total;

    /**
     * 近3次该模块正确题数
     */
    @TableField("wma_last_3_correct")
    private Integer wmaLast3Correct;

    /**
     * 近3次正确率（%）
     */
    @TableField("wma_last_3_rate")
    private BigDecimal wmaLast3Rate;

    /**
     * 是否薄弱模块（0否 1是）
     */
    private Boolean wmaIsWeak;

    /**
     * 统计更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date wmaUpdateTime;

    public Long getId() {
        return id;
    }

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

    public String getWmaId() {
        return wmaId;
    }

    public void setWmaId(String wmaId) {
        this.wmaId = wmaId;
    }

    public Long getWmaUserId() {
        return wmaUserId;
    }

    public void setWmaUserId(Long wmaUserId) {
        this.wmaUserId = wmaUserId;
    }

    public String getWmaModuleId() {
        return wmaModuleId;
    }

    public void setWmaModuleId(String wmaModuleId) {
        this.wmaModuleId = wmaModuleId;
    }

    public String getWmaModuleName() {
        return wmaModuleName;
    }

    public void setWmaModuleName(String wmaModuleName) {
        this.wmaModuleName = wmaModuleName;
    }

    public Integer getWmaTotalCount() {
        return wmaTotalCount;
    }

    public void setWmaTotalCount(Integer wmaTotalCount) {
        this.wmaTotalCount = wmaTotalCount;
    }

    public Integer getWmaCorrectCount() {
        return wmaCorrectCount;
    }

    public void setWmaCorrectCount(Integer wmaCorrectCount) {
        this.wmaCorrectCount = wmaCorrectCount;
    }

    public BigDecimal getWmaCorrectRate() {
        return wmaCorrectRate;
    }

    public void setWmaCorrectRate(BigDecimal wmaCorrectRate) {
        this.wmaCorrectRate = wmaCorrectRate;
    }

    public Integer getWmaLast3Total() {
        return wmaLast3Total;
    }

    public void setWmaLast3Total(Integer wmaLast3Total) {
        this.wmaLast3Total = wmaLast3Total;
    }

    public Integer getWmaLast3Correct() {
        return wmaLast3Correct;
    }

    public void setWmaLast3Correct(Integer wmaLast3Correct) {
        this.wmaLast3Correct = wmaLast3Correct;
    }

    public BigDecimal getWmaLast3Rate() {
        return wmaLast3Rate;
    }

    public void setWmaLast3Rate(BigDecimal wmaLast3Rate) {
        this.wmaLast3Rate = wmaLast3Rate;
    }

    public Boolean getWmaIsWeak() {
        return wmaIsWeak;
    }

    public void setWmaIsWeak(Boolean wmaIsWeak) {
        this.wmaIsWeak = wmaIsWeak;
    }

    public Date getWmaUpdateTime() {
        return wmaUpdateTime;
    }

    public void setWmaUpdateTime(Date wmaUpdateTime) {
        this.wmaUpdateTime = wmaUpdateTime;
    }

    @Override
    public String toString() {
        return "WeakModuleAnalysis{" +
                "id=" + id +
                ", wmaId='" + wmaId + '\'' +
                ", wmaUserId=" + wmaUserId +
                ", wmaModuleId='" + wmaModuleId + '\'' +
                ", wmaModuleName='" + wmaModuleName + '\'' +
                ", wmaTotalCount=" + wmaTotalCount +
                ", wmaCorrectCount=" + wmaCorrectCount +
                ", wmaCorrectRate=" + wmaCorrectRate +
                ", wmaLast3Total=" + wmaLast3Total +
                ", wmaLast3Correct=" + wmaLast3Correct +
                ", wmaLast3Rate=" + wmaLast3Rate +
                ", wmaIsWeak=" + wmaIsWeak +
                ", wmaUpdateTime=" + wmaUpdateTime +
                '}';
    }
}
