package com.qqchen.deploy.backend.deploy.integration.response;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;

/**
 * Jenkins任务响应对象
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class JenkinsJobResponse {
    /**
     * 任务名称
     */
    private String name;
    
    /**
     * 任务URL
     */
    private String url;
    
    /**
     * 任务描述
     */
    private String description;
    
    /**
     * 是否可构建
     */
    private Boolean buildable;
    
    /**
     * 是否在队列中
     */
    private Boolean inQueue;
    
    /**
     * 下一个构建号
     */
    private Integer nextBuildNumber;
    
    /**
     * 显示名称
     */
    private String displayName;
    
    /**
     * 全名
     */
    private String fullName;
    
    /**
     * 颜色（状态）
     */
    private String color;
    
    /**
     * Jenkins类型
     */
    private String _class;
    
    /**
     * 最后一次构建
     */
    private BuildInfo lastBuild;
    
    /**
     * 最后一次完成的构建
     */
    private BuildInfo lastCompletedBuild;
    
    /**
     * 最后一次失败的构建
     */
    private BuildInfo lastFailedBuild;
    
    /**
     * 最后一次成功的构建
     */
    private BuildInfo lastSuccessfulBuild;
    
    /**
     * 健康报告列表
     */
    private List<JenkinsHealthReportResponse> healthReports;

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class BuildInfo {
        private Integer number;
        private String url;
        private String _class;
        private Long timestamp;
        private Long duration;
        private String result;
    }
} 