package top.imwork.commons.core.pojo;

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

import java.time.LocalDateTime;
import java.util.List;

/**
 * Copyright (C), 2015-2025
 * FileName: FileUploadResponse
 * Author<作者姓名>:   stars
 * CreateTime<创建时间>:   2025/12/15 16:00
 * UpdateTime<修改时间>:   2025/12/15 16:00
 * Description〈功能简述〉: 文件上传响应对像
 * History<历史描述>:
 * Since<版本号>: 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FileUploadResponse {
    private String fileName;      // 原始文件名
    private String filePath;      // 服务器存储路径
    private String fileUrl;       // 访问URL
    private String fileType;      // 文件类型
    private Long fileSize;        // 文件大小
    private String fileHash;      // 文件哈希值

    /**
     * 上传是否成功
     */
    private Boolean success;

    /**
     * 返回消息
     */
    private String message;

    /**
     * 上传结果列表（多文件时使用）
     */
    private List<FileInfo> fileInfos;

    /**
     * 单个文件信息（单文件时使用）
     */
    private FileInfo fileInfo;

    @Data
    public static class FileInfo {
        /**
         * 原始文件名
         */
        private String originalFilename;
        /**
         * 存储的文件名
         */
        private String storedFilename;
        /**
         * 服务器存储路径
         */
        private String filePath;
        /**
         * 访问URL
         */
        private String fileUrl;
        /**
         * 文件大小
         */
        private Long fileSize;
        /**
         * 文件类型
         */
        private String fileType;
        private String md5;
        private Boolean uploadSuccess;
        private String errorMessage;
    }
}