package com.sundot.airport.exam.dto;

import java.io.Serializable;

/**
 * <b>功能名：</b>DashboardOverviewDTO<br>
 * <b>说明：</b> 大屏概览数据DTO <br>
 * <b>著作权：</b> Copyright (C) 2025 SUNDOT CORPORATION<br>
 * <b>修改履历：
 *
 * @author 2025-01-19
 */
public class DashboardOverviewDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 总任务数
     */
    private Long totalTasks;

    /**
     * 已完成任务数
     */
    private Long completedTasks;

    /**
     * 完成率
     */
    private Double completionRate;

    /**
     * 平均得分
     */
    private Double avgScore;

    /**
     * 逾期任务数
     */
    private Long expiredTasks;

    /**
     * 环比增长数据
     */
    private GrowthData growth;

    public Long getTotalTasks() {
        return totalTasks;
    }

    public void setTotalTasks(Long totalTasks) {
        this.totalTasks = totalTasks;
    }

    public Long getCompletedTasks() {
        return completedTasks;
    }

    public void setCompletedTasks(Long completedTasks) {
        this.completedTasks = completedTasks;
    }

    public Double getCompletionRate() {
        return completionRate;
    }

    public void setCompletionRate(Double completionRate) {
        this.completionRate = completionRate;
    }

    public Double getAvgScore() {
        return avgScore;
    }

    public void setAvgScore(Double avgScore) {
        this.avgScore = avgScore;
    }

    public Long getExpiredTasks() {
        return expiredTasks;
    }

    public void setExpiredTasks(Long expiredTasks) {
        this.expiredTasks = expiredTasks;
    }

    public GrowthData getGrowth() {
        return growth;
    }

    public void setGrowth(GrowthData growth) {
        this.growth = growth;
    }

    /**
     * 环比增长数据
     */
    public static class GrowthData implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         * 总任务增长率(%)
         */
        private Double totalTasksGrowth;

        /**
         * 完成任务增长率(%)
         */
        private Double completedTasksGrowth;

        /**
         * 平均得分增长率(%)
         */
        private Double avgScoreGrowth;

        public Double getTotalTasksGrowth() {
            return totalTasksGrowth;
        }

        public void setTotalTasksGrowth(Double totalTasksGrowth) {
            this.totalTasksGrowth = totalTasksGrowth;
        }

        public Double getCompletedTasksGrowth() {
            return completedTasksGrowth;
        }

        public void setCompletedTasksGrowth(Double completedTasksGrowth) {
            this.completedTasksGrowth = completedTasksGrowth;
        }

        public Double getAvgScoreGrowth() {
            return avgScoreGrowth;
        }

        public void setAvgScoreGrowth(Double avgScoreGrowth) {
            this.avgScoreGrowth = avgScoreGrowth;
        }
    }

    @Override
    public String toString() {
        return "DashboardOverviewDTO{" +
                "totalTasks=" + totalTasks +
                ", completedTasks=" + completedTasks +
                ", completionRate=" + completionRate +
                ", avgScore=" + avgScore +
                ", expiredTasks=" + expiredTasks +
                '}';
    }
}
