namespace decePubClient.Models.Mastodon; /// /// type: mention, status, reblog, follow, follow_request, favourite, poll, update, quote, quoted_update or /// pleroma:emoji_reaction. Status is null for follows. /// public class Notification { public string Id { get; set; } public string Type { get; set; } public DateTime CreatedAt { get; set; } public Account Account { get; set; } public Status Status { get; set; } public string Emoji { get; set; } /// The group it belongs to (likes and boosts of one post, follows within an hour), or ungrouped-{id}. public string GroupKey { get; set; } } /// /api/v2/notifications: notifications folded into groups, with the accounts and posts they name. public class GroupedNotifications { public List Accounts { get; set; } = []; public List Statuses { get; set; } = []; public List NotificationGroups { get; set; } = []; } public class NotificationGroup { public string GroupKey { get; set; } public int NotificationsCount { get; set; } public string Type { get; set; } public string MostRecentNotificationId { get; set; } public string PageMinId { get; set; } public string PageMaxId { get; set; } public DateTime LatestPageNotificationAt { get; set; } public List SampleAccountIds { get; set; } = []; public string StatusId { get; set; } public string Emoji { get; set; } } public class MarkersForm { public MarkerForm Notifications { get; set; } } public class MarkerForm { public string LastReadId { get; set; } } public class UnreadCount { public int Count { get; set; } } /// A direct conversation: its participants and its last post. public class Conversation { public string Id { get; set; } public bool Unread { get; set; } public List Accounts { get; set; } = []; public Status LastStatus { get; set; } }