package org.xyzh.api.ai.dto;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;

/**
 * @description Dify文件信息（用于对话文件上传和请求）
 * @filename DifyFileInfo.java
 * @author AI Assistant
 * @copyright xyzh
 * @since 2025-12-15
 */
@Data
public class DifyFileInfo {
    /**
     * 文件ID（Dify返回）
     */
    private String id;
    
    /**
     * 文件名
     */
    private String name;
    
    /**
     * 文件大小（字节）
     */
    private Integer size;
    
    /**
     * 文件扩展名
     */
    private String extension;
    
    /**
     * 文件MIME类型
     */
    @JSONField(name = "mime_type")
    private String mimeType;
    
    /**
     * 上传人ID
     */
    @JSONField(name = "created_by")
    private String createdBy;
    
    /**
     * 上传时间（时间戳）
     */
    @JSONField(name = "created_at")
    private Long createdAt;
    
    /**
     * 预览URL
     */
    @JSONField(name = "preview_url")
    private String previewUrl;
    
    /**
     * 源文件URL
     */
    @JSONField(name = "source_url")
    private String sourceUrl;

    /**
     * 文件类型：image、document、audio、video、file
     */
    private String type;

    /**
     * 传输方式：remote_url、local_file
     */
    @JSONField(name = "transfer_method")
    private String transferMethod;

    /**
     * 文件URL或ID
     */
    private String url;

    /**
     * 本地文件上传ID
     */
    @JSONField(name = "upload_file_id")
    private String uploadFileId;

    /**
     * 系统文件ID
     */
    @JSONField(name = "sys_file_id")
    private String sysFileId;
    
    /**
     * 文件路径（从系统文件表获取）
     */
    @JSONField(name = "file_path")
    private String filePath;
}

