package com.qqchen.deploy.backend.deploy.dto;

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

import java.util.Date;

/**
 * 远程文件信息DTO（业务层）
 * 
 * 用于返回给前端的文件信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RemoteFileInfoDTO {
    
    /**
     * 文件/目录名称
     */
    private String name;
    
    /**
     * 完整路径
     */
    private String path;
    
    /**
     * 是否是目录
     */
    private Boolean isDirectory;
    
    /**
     * 文件大小（字节）
     */
    private Long size;
    
    /**
     * 格式化的文件大小（如：1.5 MB）
     */
    private String sizeFormatted;
    
    /**
     * 权限字符串（如：rwxr-xr-x）
     */
    private String permissions;
    
    /**
     * 权限八进制表示（如：0755）
     */
    private String permissionsOctal;
    
    /**
     * 修改时间
     */
    private Date modifyTime;
    
    /**
     * 所有者（格式：用户名 (UID)，如：root (0)）
     */
    private String owner;
    
    /**
     * 所有者UID
     */
    private Integer ownerUid;
    
    /**
     * 组（格式：组名 (GID)，如：root (0)）
     */
    private String group;
    
    /**
     * 组GID
     */
    private Integer groupGid;
    
    /**
     * 文件扩展名
     */
    private String extension;
    
    /**
     * 是否是符号链接
     */
    private Boolean isSymlink;
    
    /**
     * 符号链接目标
     */
    private String linkTarget;
}
