using Dpz.Core.Entity.Base;
using Dpz.Core.Entity.Base.Indexes;

namespace Dpz.Core.Public.Entity;

public class CodeNote : BaseEntity, IIndexedEntity<CodeNote>
{
    /// <summary>
    /// 说明
    /// </summary>
    public string? Note { get; set; }

    /// <summary>
    /// 所在的路径
    /// </summary>
    public required string Path { get; set; }

    /// <summary>
    /// 最终的文件名称或目录名称
    /// </summary>
    public required string Name { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    [BsonDateTimeOptions(Kind = DateTimeKind.Local)]
    public DateTime CreateTime { get; set; }

    /// <summary>
    /// 最后修改时间
    /// </summary>
    [BsonDateTimeOptions(Kind = DateTimeKind.Local)]
    public DateTime LastUpdateTime { get; set; }

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

    /// <inheritdoc />
    public static IReadOnlyList<EntityIndexDefinition> GetIndexDefinitions() =>
        [
            new() { Fields = [EntityIndexField.Ascending<CodeNote>(x => x.Path)] },
            new() { Fields = [EntityIndexField.Ascending<CodeNote>(x => x.Name)] },
        ];
}
评论加载中...