package org.xyzh.common.vo;

import java.io.Serializable;
import java.util.List;

/**
 * @description 学习统计响应VO
 * @filename LearningStatisticsVO.java
 * @author yslg
 * @copyright xyzh
 * @since 2025-10-27
 */
public class LearningStatisticsVO implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * @description 用户ID
     */
    private String userID;
    
    /**
     * @description 统计周期（day/week/month）
     */
    private String period;
    
    /**
     * @description 总学习时长（秒）
     */
    private Integer totalDuration;
    
    /**
     * @description 总学习时长（格式化）
     */
    private String totalDurationFormatted;
    
    /**
     * @description 学习天数
     */
    private Integer learnDays;
    
    /**
     * @description 学习资源数量
     */
    private Integer resourceCount;
    
    /**
     * @description 学习课程数量
     */
    private Integer courseCount;
    
    /**
     * @description 学习次数
     */
    private Integer learnCount;
    
    /**
     * @description 完成数量
     */
    private Integer completeCount;
    
    /**
     * @description 平均每天学习时长（秒）
     */
    private Integer avgDailyDuration;
    
    /**
     * @description 学习明细列表
     */
    private List<LearningStatisticsDetailVO> details;

    public String getUserID() {
        return userID;
    }

    public void setUserID(String userID) {
        this.userID = userID;
    }

    public String getPeriod() {
        return period;
    }

    public void setPeriod(String period) {
        this.period = period;
    }

    public Integer getTotalDuration() {
        return totalDuration;
    }

    public void setTotalDuration(Integer totalDuration) {
        this.totalDuration = totalDuration;
    }

    public String getTotalDurationFormatted() {
        return totalDurationFormatted;
    }

    public void setTotalDurationFormatted(String totalDurationFormatted) {
        this.totalDurationFormatted = totalDurationFormatted;
    }

    public Integer getLearnDays() {
        return learnDays;
    }

    public void setLearnDays(Integer learnDays) {
        this.learnDays = learnDays;
    }

    public Integer getResourceCount() {
        return resourceCount;
    }

    public void setResourceCount(Integer resourceCount) {
        this.resourceCount = resourceCount;
    }

    public Integer getCourseCount() {
        return courseCount;
    }

    public void setCourseCount(Integer courseCount) {
        this.courseCount = courseCount;
    }

    public Integer getLearnCount() {
        return learnCount;
    }

    public void setLearnCount(Integer learnCount) {
        this.learnCount = learnCount;
    }

    public Integer getCompleteCount() {
        return completeCount;
    }

    public void setCompleteCount(Integer completeCount) {
        this.completeCount = completeCount;
    }

    public Integer getAvgDailyDuration() {
        return avgDailyDuration;
    }

    public void setAvgDailyDuration(Integer avgDailyDuration) {
        this.avgDailyDuration = avgDailyDuration;
    }

    public List<LearningStatisticsDetailVO> getDetails() {
        return details;
    }

    public void setDetails(List<LearningStatisticsDetailVO> details) {
        this.details = details;
    }

    @Override
    public String toString() {
        return "LearningStatisticsVO{" +
                "userID='" + userID + '\'' +
                ", period='" + period + '\'' +
                ", totalDuration=" + totalDuration +
                ", totalDurationFormatted='" + totalDurationFormatted + '\'' +
                ", learnDays=" + learnDays +
                ", resourceCount=" + resourceCount +
                ", courseCount=" + courseCount +
                ", learnCount=" + learnCount +
                ", completeCount=" + completeCount +
                ", avgDailyDuration=" + avgDailyDuration +
                '}';
    }
}

