package com.ruoyi.project.domain;

import java.util.Date;
import java.util.List;

/**
 * 审校统计VO对象
 */
public class TrsResultsStatsSimpleVo {

    /** 开始时间 */
    private Date startTime;

    /** 结束时间 */
    private Date endTime;

    /** 总审校日志数 */
    private Integer totalLogCount;

    /** 总错误词数 */
    private Integer totalWordCount;

    /** 活跃用户数 */
    private Integer activeUserCount;

    /** 活跃部门数 */
    private Integer activeDeptCount;

    /** 部门统计列表 */
    private List<DeptStatsVo> deptStatsList;

    /** 自定义词增加排行 */
    private List<CustomWordRankVo> customWordRank;

    /** 错误类型占比 */
    private List<ErrorTypeVo> errorTypeRatio;

    /** 趋势数据 */
    private List<TrendDataVo> trendData;

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Integer getTotalLogCount() {
        return totalLogCount;
    }

    public void setTotalLogCount(Integer totalLogCount) {
        this.totalLogCount = totalLogCount;
    }

    public Integer getTotalWordCount() {
        return totalWordCount;
    }

    public void setTotalWordCount(Integer totalWordCount) {
        this.totalWordCount = totalWordCount;
    }

    public Integer getActiveUserCount() {
        return activeUserCount;
    }

    public void setActiveUserCount(Integer activeUserCount) {
        this.activeUserCount = activeUserCount;
    }

    public Integer getActiveDeptCount() {
        return activeDeptCount;
    }

    public void setActiveDeptCount(Integer activeDeptCount) {
        this.activeDeptCount = activeDeptCount;
    }

    public List<DeptStatsVo> getDeptStatsList() {
        return deptStatsList;
    }

    public void setDeptStatsList(List<DeptStatsVo> deptStatsList) {
        this.deptStatsList = deptStatsList;
    }

    public List<CustomWordRankVo> getCustomWordRank() {
        return customWordRank;
    }

    public void setCustomWordRank(List<CustomWordRankVo> customWordRank) {
        this.customWordRank = customWordRank;
    }

    public List<ErrorTypeVo> getErrorTypeRatio() {
        return errorTypeRatio;
    }

    public void setErrorTypeRatio(List<ErrorTypeVo> errorTypeRatio) {
        this.errorTypeRatio = errorTypeRatio;
    }

    public List<TrendDataVo> getTrendData() {
        return trendData;
    }

    public void setTrendData(List<TrendDataVo> trendData) {
        this.trendData = trendData;
    }

    /**
     * 部门统计VO
     */
    public static class DeptStatsVo {
        private Long deptId;
        private String deptName;
        private Integer userCount;
        private Integer logCount;
        private Integer wordCount;
        private List<UserActiveVo> activeUsers;

        public Long getDeptId() {
            return deptId;
        }

        public void setDeptId(Long deptId) {
            this.deptId = deptId;
        }

        public String getDeptName() {
            return deptName;
        }

        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }

        public Integer getUserCount() {
            return userCount;
        }

        public void setUserCount(Integer userCount) {
            this.userCount = userCount;
        }

        public Integer getLogCount() {
            return logCount;
        }

        public void setLogCount(Integer logCount) {
            this.logCount = logCount;
        }

        public Integer getWordCount() {
            return wordCount;
        }

        public void setWordCount(Integer wordCount) {
            this.wordCount = wordCount;
        }

        public List<UserActiveVo> getActiveUsers() {
            return activeUsers;
        }

        public void setActiveUsers(List<UserActiveVo> activeUsers) {
            this.activeUsers = activeUsers;
        }
    }

    /**
     * 用户活跃VO
     */
    public static class UserActiveVo {
        private Long userId;
        private String userName;
        private String loginName;
        private Integer logCount;
        private Integer wordCount;

        public Long getUserId() {
            return userId;
        }

        public void setUserId(Long userId) {
            this.userId = userId;
        }

        public String getUserName() {
            return userName;
        }

        public void setUserName(String userName) {
            this.userName = userName;
        }

        public String getLoginName() {
            return loginName;
        }

        public void setLoginName(String loginName) {
            this.loginName = loginName;
        }

        public Integer getLogCount() {
            return logCount;
        }

        public void setLogCount(Integer logCount) {
            this.logCount = logCount;
        }

        public Integer getWordCount() {
            return wordCount;
        }

        public void setWordCount(Integer wordCount) {
            this.wordCount = wordCount;
        }
    }

    /**
     * 自定义词排行VO
     */
    public static class CustomWordRankVo {
        private String type;
        private Long id;
        private String name;
        private String loginName;
        private String deptName;
        private Integer addCount;

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public Long getId() {
            return id;
        }

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

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getLoginName() {
            return loginName;
        }

        public void setLoginName(String loginName) {
            this.loginName = loginName;
        }

        public String getDeptName() {
            return deptName;
        }

        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }

        public Integer getAddCount() {
            return addCount;
        }

        public void setAddCount(Integer addCount) {
            this.addCount = addCount;
        }
    }

    /**
     * 错误类型VO
     */
    public static class ErrorTypeVo {
        private String errorType;
        private Long count;
        private Double percentage;

        public String getErrorType() {
            return errorType;
        }

        public void setErrorType(String errorType) {
            this.errorType = errorType;
        }

        public Long getCount() {
            return count;
        }

        public void setCount(Long count) {
            this.count = count;
        }

        public Double getPercentage() {
            return percentage;
        }

        public void setPercentage(Double percentage) {
            this.percentage = percentage;
        }
    }

    /**
     * 趋势数据VO
     */
    public static class TrendDataVo {
        private String date;
        private Integer logCount;
        private Integer wordCount;
        private Integer userCount;

        public String getDate() {
            return date;
        }

        public void setDate(String date) {
            this.date = date;
        }

        public Integer getLogCount() {
            return logCount;
        }

        public void setLogCount(Integer logCount) {
            this.logCount = logCount;
        }

        public Integer getWordCount() {
            return wordCount;
        }

        public void setWordCount(Integer wordCount) {
            this.wordCount = wordCount;
        }

        public Integer getUserCount() {
            return userCount;
        }

        public void setUserCount(Integer userCount) {
            this.userCount = userCount;
        }
    }
}