package com.qqchen.deploy.backend.framework.ssh.file;

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

import java.util.Date;

/**
 * SSH文件信息模型（Framework层）
 * 
 * 封装SFTP返回的文件/目录信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SSHFileInfo {
    
    /**
     * 文件/目录名称
     */
    private String name;
    
    /**
     * 完整路径
     */
    private String path;
    
    /**
     * 是否是目录
     */
    private Boolean isDirectory;
    
    /**
     * 文件大小（字节）
     * 目录时为null
     */
    private Long size;
    
    /**
     * 权限掩码（八进制，如：493 = 0755）
     */
    private Integer permissionMask;
    
    /**
     * 权限字符串（如：rwxr-xr-x）
     */
    private String permissionString;
    
    /**
     * 修改时间
     */
    private Date modifyTime;
    
    /**
     * 所有者UID
     */
    private Integer ownerUid;
    
    /**
     * 所有者用户名（如果能解析）
     */
    private String owner;
    
    /**
     * 组GID
     */
    private Integer groupGid;
    
    /**
     * 组名（如果能解析）
     */
    private String group;
    
    /**
     * 文件扩展名（方便前端显示图标）
     */
    private String extension;
    
    /**
     * 是否是符号链接
     */
    private Boolean isSymlink;
    
    /**
     * 符号链接目标路径
     */
    private String linkTarget;
}
