package com.ruoyi.learn.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学生计划执行情况对象 learn_plan_study
 * 
 * @author ruoyi
 * @date 2025-09-25
 */
public class LearnPlanStudy extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 计划学习id */
    private String id;

    /** 学生id */
    @Excel(name = "学生id")
    private Long studentId;

    /** 对应计划 */
    @Excel(name = "对应计划")
    private Long planId;

    /** 月份序号 */
    @Excel(name = "月份序号")
    private Long monthSeq;

    /** 周序号 */
    @Excel(name = "周序号")
    private Long weekSeq;

    /** 学习日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "学习日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportDate;

    /** 完成题数 */
    @Excel(name = "完成题数")
    private Long questionCount;

    @Excel(name = "完成题数")
    private Long rightCount;

    /** 完成视频时间 */
    @Excel(name = "完成视频数量")
    private Long videoCount;

    /** 完成视频时间 */
    @Excel(name = "完成视频时间")
    private Long videoTime;

    /** 计划做题数 */
    @Excel(name = "计划做题数")
    private Integer questionPlan;

    /** 计划视频时间 */
    @Excel(name = "计划视频时间")
    private Integer videoPlan;

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

    public String getId() 
    {
        return id;
    }

    public void setStudentId(Long studentId) 
    {
        this.studentId = studentId;
    }

    public Long getStudentId() 
    {
        return studentId;
    }

    public void setPlanId(Long planId) 
    {
        this.planId = planId;
    }

    public Long getPlanId() 
    {
        return planId;
    }

    public void setMonthSeq(Long monthSeq) 
    {
        this.monthSeq = monthSeq;
    }

    public Long getMonthSeq() 
    {
        return monthSeq;
    }

    public void setWeekSeq(Long weekSeq) 
    {
        this.weekSeq = weekSeq;
    }

    public Long getWeekSeq() 
    {
        return weekSeq;
    }

    public void setReportDate(Date reportDate) 
    {
        this.reportDate = reportDate;
    }

    public Date getReportDate() 
    {
        return reportDate;
    }

    public void setQuestionCount(Long questionCount) 
    {
        this.questionCount = questionCount;
    }

    public Long getQuestionCount() 
    {
        return questionCount;
    }

    public Long getRightCount() {
        return rightCount;
    }

    public void setRightCount(Long rightCount) {
        this.rightCount = rightCount;
    }

    public Long getVideoCount() {
        return videoCount;
    }

    public void setVideoCount(Long videoCount) {
        this.videoCount = videoCount;
    }

    public void setVideoTime(Long videoTime)
    {
        this.videoTime = videoTime;
    }

    public Long getVideoTime() 
    {
        return videoTime;
    }

    public void setQuestionPlan(Integer questionPlan)
    {
        this.questionPlan = questionPlan;
    }

    public Integer getQuestionPlan()
    {
        return questionPlan;
    }

    public void setVideoPlan(Integer videoPlan)
    {
        this.videoPlan = videoPlan;
    }

    public Integer getVideoPlan()
    {
        return videoPlan;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("studentId", getStudentId())
            .append("planId", getPlanId())
            .append("monthSeq", getMonthSeq())
            .append("weekSeq", getWeekSeq())
            .append("reportDate", getReportDate())
            .append("questionCount", getQuestionCount())
            .append("videoTime", getVideoTime())
            .append("questionPlan", getQuestionPlan())
            .append("videoPlan", getVideoPlan())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
