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

namespace Dpz.Core.Public.Entity;

[BsonIgnoreExtraElements]
public class Mumble : BaseEntity, IIndexedEntity<Mumble>
{
    /// <summary>
    /// Markdown
    /// </summary>
    public required string Markdown { 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>
    /// 点赞数
    /// </summary>
    public int Like { get; set; }

    /// <summary>
    /// 评论数
    /// </summary>
    public int CommentCount { get; set; }

    public required UserInfo Author { get; set; }

    /// <summary>
    /// 碎碎念相关图片元信息
    /// </summary>
    public List<ImageMetadata> Images { get; set; } = [];

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