package org.xyzh.common.dto.ai;

import org.xyzh.common.dto.BaseDTO;

/**
 * @description 上传文件表
 * @filename TbAiUploadFile.java
 * @author yslg
 * @copyright xyzh
 * @since 2025-10-15
 */
public class TbAiUploadFile extends BaseDTO {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * @description 用户ID
     */
    private String userID;
    
    /**
     * @description 所属知识库ID
     */
    private String knowledgeId;
    
    /**
     * @description 关联会话ID（对话中上传）
     */
    private String conversationID;
    
    /**
     * @description 关联消息ID（绑定到具体的用户消息）
     */
    private String messageID;
    
    /**
     * @description 系统文件ID（关联tb_sys_file）
     */
    private String sysFileId;
    
    /**
     * @description 文件名
     */
    private String fileName;
    
    /**
     * @description 文件路径
     */
    private String filePath;
    
    /**
     * @description 文件大小（字节）
     */
    private Long fileSize;
    
    /**
     * @description 文件类型（pdf/txt/docx/md等）
     */
    private String fileType;
    
    /**
     * @description MIME类型
     */
    private String mimeType;
    
    /**
     * @description 提取的文本内容
     */
    private String extractedText;
    
    /**
     * @description Dify文档ID
     */
    private String difyDocumentId;
    
    /**
     * @description Dify批次ID
     */
    private String difyBatchId;
    
    /**
     * @description Dify上传文件ID（对话中上传的文件）
     */
    private String difyUploadFileId;
    
    /**
     * @description 分段数量
     */
    private Integer chunkCount;
    
    /**
     * @description 状态（0上传中 1处理中 2已完成 3失败）
     */
    private Integer status;
    
    /**
     * @description 错误信息
     */
    private String errorMessage;
    
    /**
     * @description 是否启用
     */
    private Boolean enabled;
    
    /**
     * @description 显示状态
     */
    private String displayStatus;

    public String getUserID() {
        return userID;
    }

    public void setUserID(String userID) {
        this.userID = userID;
    }

    public String getKnowledgeId() {
        return knowledgeId;
    }

    public void setKnowledgeId(String knowledgeId) {
        this.knowledgeId = knowledgeId;
    }

    public String getConversationID() {
        return conversationID;
    }

    public void setConversationID(String conversationID) {
        this.conversationID = conversationID;
    }

    public String getMessageID() {
        return messageID;
    }

    public void setMessageID(String messageID) {
        this.messageID = messageID;
    }

    public String getSysFileId() {
        return sysFileId;
    }

    public void setSysFileId(String sysFileId) {
        this.sysFileId = sysFileId;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public Long getFileSize() {
        return fileSize;
    }

    public void setFileSize(Long fileSize) {
        this.fileSize = fileSize;
    }

    public String getFileType() {
        return fileType;
    }

    public void setFileType(String fileType) {
        this.fileType = fileType;
    }

    public String getMimeType() {
        return mimeType;
    }

    public void setMimeType(String mimeType) {
        this.mimeType = mimeType;
    }

    public String getExtractedText() {
        return extractedText;
    }

    public void setExtractedText(String extractedText) {
        this.extractedText = extractedText;
    }

    public String getDifyDocumentId() {
        return difyDocumentId;
    }

    public void setDifyDocumentId(String difyDocumentId) {
        this.difyDocumentId = difyDocumentId;
    }

    public String getDifyBatchId() {
        return difyBatchId;
    }

    public void setDifyBatchId(String difyBatchId) {
        this.difyBatchId = difyBatchId;
    }

    public String getDifyUploadFileId() {
        return difyUploadFileId;
    }

    public void setDifyUploadFileId(String difyUploadFileId) {
        this.difyUploadFileId = difyUploadFileId;
    }

    public Integer getChunkCount() {
        return chunkCount;
    }

    public void setChunkCount(Integer chunkCount) {
        this.chunkCount = chunkCount;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }
    public Boolean getEnabled() {
        return enabled;
    }

    public void setEnabled(Boolean enabled) {
        this.enabled = enabled;
    }

    public String getDisplayStatus() {
        return displayStatus;
    }

    public void setDisplayStatus(String displayStatus) {
        this.displayStatus = displayStatus;
    }

    @Override
    public String toString() {
        return "TbAiUploadFile{" +
                "id=" + getID() +
                ", userID='" + userID + '\'' +
                ", conversationID='" + conversationID + '\'' +
                ", fileName='" + fileName + '\'' +
                ", fileSize=" + fileSize +
                ", fileType='" + fileType + '\'' +
                ", status=" + status +
                '}';
    }
}
