Files
SocialPub/PrivaPub/Models/Social/Notification.cs
T
thepraandClaude Opus 5.5 87529bca49 R8 the Mastodon API made real: featured tags, endorsements, notes, notify and languages, suggestions, the direct stream
Featured tags per persona (/api/v1/featured_tags, suggestions, tags/:name/feature, accounts' featured tags, max 10),
listed at /tattoos as Hashtags and sent as Add/Remove{Hashtag} to followers on the featured collection, as Mastodon
sends them; remote accounts' tags received and read from featuredTags. Endorsements (pin/endorse) and private notes
(PersonaNote) kept per persona and never federated; the relationship's notifying, languages, endorsed and note, with
follow's notify (status notifications) and languages (home filter). Reading preferences set on /clientapi. Suggestions
v1/v2 with dismissals and staff picks, never the persona or a sibling. conversation events on the direct stream.
translate, annual reports and the admin API answer. New collections backed up and removed with their persona.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
2026-10-18 08:38:11 +02:00

40 lines
1.3 KiB
C#

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<string> 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)
}
}