using System;
using System.Collections.Generic;
using Dpz.Core.EnumLibrary;
using Dpz.Core.Infrastructure;
using Dpz.Core.Infrastructure.Entity;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
namespace Dpz.Core.Public.Entity;
[BsonDiscriminator(RootClass = true)]
[BsonKnownTypes(
typeof(MembleCommenter),
typeof(GuestCommenter)
)]
public abstract class Commenter
{
/// <summary>
/// 昵称
/// </summary>
public string NickName { get; set; }
}
/// <summary>
/// 登录会员评论
/// </summary>
public class MembleCommenter : Commenter
{
/// <summary>
/// 头像
/// </summary>
public string Avatar { get; set; }
/// <summary>
/// 身份标识
/// </summary>
public string Identity { get; set; }
}
/// <summary>
/// 匿名评论
/// </summary>
public class GuestCommenter : Commenter
{
/// <summary>
/// 邮箱
/// </summary>
public string Email { get; set; }
/// <summary>
/// 网站
/// </summary>
public string Site { get; set; }
}
[Backup]
public class Comment : BaseEntity
{
/// <summary>
/// 评论类型
/// </summary>
[BsonRepresentation(BsonType.String)]
public CommentNode Node { get; set; }
/// <summary>
/// 关联
/// </summary>
public string Relation { get; set; }
/// <summary>
/// 回复时间
/// </summary>
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime PublishTime { get; set; }
/// <summary>
/// 评论人
/// </summary>
public Commenter Commenter { get; set; }
/// <summary>
/// 回复内容
/// </summary>
public string CommentText { get; set; }
/// <summary>
/// 回复ID
/// </summary>
public List<ObjectId> Replies { get; set; }
/// <summary>
/// 是否删除
/// </summary>
public bool? IsDelete { get; set; }
}