package com.qqchen.deploy.backend.schedule.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 定时任务Dashboard数据
 * 
 * @author qichen
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class JobDashboardDTO {

    /**
     * 任务统计汇总
     */
    private JobSummaryDTO summary;

    /**
     * 正在执行的任务列表
     */
    private List<RunningJobDTO> runningJobs;

    /**
     * 最近执行日志（最近10条）
     */
    private List<ScheduleJobLogDTO> recentLogs;

    /**
     * 任务统计汇总
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class JobSummaryDTO {
        /**
         * 任务总数
         */
        private Long total;

        /**
         * 已启用数量
         */
        private Long enabled;

        /**
         * 已禁用数量
         */
        private Long disabled;

        /**
         * 已暂停数量
         */
        private Long paused;

        /**
         * 正在运行数量
         */
        private Long running;
    }

    /**
     * 正在执行的任务信息
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class RunningJobDTO {
        /**
         * 任务ID
         */
        private Long jobId;

        /**
         * 任务名称
         */
        private String jobName;

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

        /**
         * 执行进度（0-100）
         */
        private Integer progress;

        /**
         * 当前执行消息
         */
        private String message;

        /**
         * 执行状态
         */
        private String status;
    }
}

