2026-10-01 11:32:33 +02:00
|
|
|
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; }
|
2026-10-01 18:39:18 +02:00
|
|
|
public string Emoji { get; set; }//a reaction's emoji
|
|
|
|
|
public string EmojiURL { get; set; }
|
2026-10-07 21:10:58 +02:00
|
|
|
public string Text { get; set; }//a moderation warning's reason
|
2026-10-17 05:23:45 +02:00
|
|
|
[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<string> StatusIds { get; set; }//the posts a warning is about, when more than PostId
|
2026-10-01 11:32:33 +02:00
|
|
|
public bool IsRead { get; set; }
|
2026-10-06 15:48:33 +02:00
|
|
|
public bool Filtered { get; set; }//held back by the persona's notification policy, in a NotificationRequest
|
2026-10-01 11:32:33 +02:00
|
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public enum NotificationType
|
|
|
|
|
{
|
|
|
|
|
Mention,
|
|
|
|
|
Follow,
|
|
|
|
|
FollowRequest,
|
|
|
|
|
Favourite,
|
|
|
|
|
Reblog,
|
2026-10-01 18:35:20 +02:00
|
|
|
Update,
|
2026-10-01 18:39:18 +02:00
|
|
|
Poll,
|
2026-10-01 18:53:28 +02:00
|
|
|
Reaction,
|
2026-10-07 21:10:58 +02:00
|
|
|
Quote,
|
2026-10-18 08:38:11 +02:00
|
|
|
ModerationWarning,
|
|
|
|
|
Status//a new post of an account the persona follows with notify (R8)
|
2026-10-01 11:32:33 +02:00
|
|
|
}
|
|
|
|
|
}
|