package org.dromara.knowledge.domain.vo;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 知识库状态视图对象 knowledge_status
 *
 * @author pengles
 */
@Data
@ExcelIgnoreUnannotated
public class KnowledgeStatusVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 知识库ID
     */
    @ExcelProperty(value = "知识库ID")
    private String knowledgeId;

    /**
     * 知识库名称
     */
    @ExcelProperty(value = "知识库名称")
    private String knowledgeName;

    /**
     * 文档总数
     */
    @ExcelProperty(value = "文档总数")
    private Integer totalDocuments;

    /**
     * 已处理文档数
     */
    @ExcelProperty(value = "已处理文档数")
    private Integer processedDocuments;

    /**
     * 知识片段总数
     */
    @ExcelProperty(value = "知识片段总数")
    private Integer totalFragments;

    /**
     * 已向量化片段数
     */
    @ExcelProperty(value = "已向量化片段数")
    private Integer vectorizedFragments;

    /**
     * 处理进度百分比
     */
    @ExcelProperty(value = "处理进度")
    private Double progressPercentage;

    /**
     * 当前处理状态
     */
    @ExcelProperty(value = "处理状态")
    private String processingStatus;

    /**
     * 正在进行的任务数
     */
    @ExcelProperty(value = "进行中任务数")
    private Integer runningJobs;

    /**
     * 等待中的任务数
     */
    @ExcelProperty(value = "等待中任务数")
    private Integer pendingJobs;

    /**
     * 失败的任务数
     */
    @ExcelProperty(value = "失败任务数")
    private Integer failedJobs;

    /**
     * 最后更新时间
     */
    @ExcelProperty(value = "最后更新时间")
    private LocalDateTime lastUpdateTime;

    /**
     * 错误信息
     */
    @ExcelProperty(value = "错误信息")
    private String errorMessage;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

}