2026-10-04 11:03:14 +02:00
|
|
|
namespace decePubClient.Models.Mastodon;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// type: mention, status, reblog, follow, follow_request, favourite, poll, update, quote, quoted_update or
|
|
|
|
|
/// pleroma:emoji_reaction. Status is null for follows.
|
|
|
|
|
/// </summary>
|
|
|
|
|
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; }
|
2026-10-05 04:35:23 +02:00
|
|
|
/// <summary>The group it belongs to (likes and boosts of one post, follows within an hour), or ungrouped-{id}.</summary>
|
|
|
|
|
public string GroupKey { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>/api/v2/notifications: notifications folded into groups, with the accounts and posts they name.</summary>
|
|
|
|
|
public class GroupedNotifications
|
|
|
|
|
{
|
|
|
|
|
public List<Account> Accounts { get; set; } = [];
|
|
|
|
|
public List<Status> Statuses { get; set; } = [];
|
|
|
|
|
public List<NotificationGroup> 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<string> 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; }
|
2026-10-04 11:03:14 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>A direct conversation: its participants and its last post.</summary>
|
|
|
|
|
public class Conversation
|
|
|
|
|
{
|
|
|
|
|
public string Id { get; set; }
|
|
|
|
|
public bool Unread { get; set; }
|
|
|
|
|
public List<Account> Accounts { get; set; } = [];
|
|
|
|
|
public Status LastStatus { get; set; }
|
|
|
|
|
}
|