package org.xyzh.api.file.dto;

import org.xyzh.common.dto.BaseDTO;

import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.v3.oas.annotations.media.Schema;

/**
 * @description    系统文件DTO
 * @filename    TbSysFileDTO.java
 * @author    yslg
 * @copyright yslg
 * @since 2025-11-04
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "系统文件DTO")
public class TbSysFileDTO extends BaseDTO {
	private static final long serialVersionUID = 1L;

    @Schema(description = "文件ID (主键)")
	private String fileId;

    @Schema(description = "文件根ID")
    private String fileRootId;

    @Schema(description = "文件版本")
    private Integer version;
    
    @Schema(description = "文件名")
	private String name;

    @Schema(description = "文件路径")
	private String path;

    @Schema(description = "文件大小（字节）")
	private Long size;

    @Schema(description = "文件类型")
	private String type;

    @Schema(description = "存储类型")
	private String storageType;

    @Schema(description = "MIME 类型")
	private String mimeType;

    @Schema(description = "文件访问 URL")
	private String url;

    @Schema(description = "文件状态")
	private String status;

    @Schema(description = "所属模块")
    private String module;

    @Schema(description = "业务ID")
    private String businessId;

    @Schema(description = "上传者用户ID")
    private String uploader;

    @Schema(description = "MinIO对象名称")
    private String objectName;

    @Schema(description = "MinIO存储桶名称")
    private String bucketName;

    @Schema(description = "文件MD5值")
    private String md5Hash;

    @Schema(description = "文件扩展名")
    private String extension;

}
