using MongoDB.Entities; namespace PrivaPub.Models.Social { public class Notification : Entity { public string AvatarId { get; set; } public NotificationType Type { get; set; } public string FromAccountId { get; set; } public string FromActorURI { get; set; } public string PostId { get; set; } public string DedupeKey { get; set; } public string Emoji { get; set; }//a reaction's emoji public string EmojiURL { get; set; } public string Text { get; set; }//a moderation warning's reason [MongoDB.Bson.Serialization.Attributes.BsonIgnoreIfNull] public string WarningAction { get; set; }//a warning from this server's staff: Mastodon's AccountWarning action (silence, suspend, delete_statuses) [MongoDB.Bson.Serialization.Attributes.BsonIgnoreIfNull] public List StatusIds { get; set; }//the posts a warning is about, when more than PostId public bool IsRead { get; set; } public bool Filtered { get; set; }//held back by the persona's notification policy, in a NotificationRequest public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } public enum NotificationType { Mention, Follow, FollowRequest, Favourite, Reblog, Update, Poll, Reaction, Quote, ModerationWarning, Status//a new post of an account the persona follows with notify (R8) } }