using Dpz.Core.EnumLibrary;

namespace Dpz.Core.Public.ViewModel.Response;

/// <summary>
/// Represents the CodeFileSystemEntryResponse type.
/// </summary>
public class CodeFileSystemEntryResponse
{
    /// <summary>
    /// Gets or sets Id.
    /// </summary>
    public required string Id { get; set; }

    /// <summary>
    /// 完整路径分段
    /// </summary>
    public required List<string> PathSegments { get; set; } = [];

    /// <summary>
    /// 名称
    /// </summary>
    public required string Name { get; set; }

    /// <summary>
    /// 父级路径分段(根目录为空集合)
    /// </summary>
    public List<string> ParentPathSegments { get; set; } = [];

    /// <summary>
    /// 是否为目录
    /// </summary>
    public bool IsDirectory { get; set; }

    /// <summary>
    /// 扩展名(目录为空)
    /// </summary>
    public string? Extension { get; set; }

    /// <summary>
    /// 大小(目录为空)
    /// </summary>
    public long? Size { get; set; }

    /// <summary>
    /// 文件哈希(目录为空)
    /// </summary>
    public string? Hash { get; set; }

    /// <summary>
    /// 文件内容类型(目录为 Unknown)
    /// </summary>
    public CodeFileContentType CodeFileContentType { get; set; }

    /// <summary>
    /// 文件内容(目录为空)
    /// </summary>
    public string? FileContent { get; set; }

    /// <summary>
    /// 代码语言
    /// </summary>
    public string? CodeLanguage { get; set; }

    /// <summary>
    /// 标签
    /// </summary>
    public List<string> Tags { get; set; } = [];

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreatedTime { get; set; }

    /// <summary>
    /// 最后修改时间
    /// </summary>
    public DateTime LastWriteTime { get; set; }

    /// <summary>
    /// 最后更新时间(数据更新时间)
    /// </summary>
    public DateTime LastUpdateTime { get; set; }

    /// <summary>
    /// 描述
    /// </summary>
    public string? Description { get; set; }

    /// <summary>
    /// AI分析结果
    /// </summary>
    public string? AiAnalyzeResult { get; set; }

    /// <summary>
    /// AI分析时间
    /// </summary>
    public DateTime? AiAnalyzeTime { get; set; }

    /// <summary>
    /// AI分析对应的文件哈希
    /// </summary>
    public string? AiAnalyzeHash { get; set; }

    /// <summary>
    /// Readme内容
    /// </summary>
    public string? ReadmeContent { get; set; }
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

这是一个用于表示代码文件系统条目响应的 C# 类,主要用于在 API 响应中传输文件或目录的详细信息。以下是对这个类的详细解释:

类的用途

CodeFileSystemEntryResponse 是一个响应模型类,用于封装代码文件系统中文件或目录的完整信息,支持文件管理、代码分析等功能。

主要属性分类

1. 基本标识信息

  • Id: 唯一标识符(必填)
  • Name: 文件或目录名称(必填)

2. 路径结构

  • PathSegments: 完整路径的分段列表(必填)
  • ParentPathSegments: 父级目录的路径分段(根目录为空集合)

3. 文件系统属性

  • IsDirectory: 标识是否为目录
  • Extension: 文件扩展名(目录时为空)
  • Size: 文件大小(目录时为空)

4. 文件内容相关

  • Hash: 文件哈希值,用于内容校验(目录时为空)
  • CodeFileContentType: 文件内容类型枚举
  • FileContent: 文件的实际内容(目录时为空)
  • CodeLanguage: 代码语言类型

5. 时间戳

  • CreatedTime: 文件创建时间
  • LastWriteTime: 最后修改时间
  • LastUpdateTime: 数据最后更新时间

6. 元数据和标注

  • Tags: 标签列表,用于分类管理
  • Description: 文件或目录的描述信息

7. AI 分析功能

  • AiAnalyzeResult: AI 分析的结果
  • AiAnalyzeTime: AI 分析的时间
  • AiAnalyzeHash: AI 分析时对应的文件哈希值

8. 文档支持

  • ReadmeContent: README 文件内容

设计特点

  1. 类型安全: 使用 required 关键字确保关键属性必须初始化
  2. 空值处理: 合理使用可空类型处理可选属性
  3. 默认初始化: 集合类型使用 = [] 进行默认初始化
  4. 文档完善: 每个属性都有详细的 XML 注释说明
  5. 功能丰富: 支持文件管理、AI 分析、标签系统等多种功能

这个类设计得相当全面,适用于构建代码文件管理系统、代码分析工具或类似的应用场景。

评论加载中...