namespace decePubClient.Models.Mastodon; /// /// A post as PrivaPub's Mastodon API sends it (snake_case JSON, MastodonJsonContext). PrivaPub-only details are in /// Privapub; ids are opaque strings. /// public class Status { public string Id { get; set; } public string Uri { get; set; } public string Url { get; set; } public Account Account { get; set; } public string InReplyToId { get; set; } public string InReplyToAccountId { get; set; } public Status Reblog { get; set; } public string Content { get; set; } public DateTime CreatedAt { get; set; } public DateTime? EditedAt { get; set; } public List Emojis { get; set; } = []; public int RepliesCount { get; set; } public int ReblogsCount { get; set; } public int FavouritesCount { get; set; } public bool Reblogged { get; set; } public bool Favourited { get; set; } public bool Muted { get; set; } public bool Bookmarked { get; set; } public bool Pinned { get; set; } public bool Sensitive { get; set; } public string SpoilerText { get; set; } /// public, unlisted, private (followers and circles) or direct. public string Visibility { get; set; } public List MediaAttachments { get; set; } = []; public List Mentions { get; set; } = []; public List Tags { get; set; } = []; public PreviewCard Card { get; set; } public Poll Poll { get; set; } public StatusApplication Application { get; set; } public string Language { get; set; } /// The plain text source, only on the author's own deleted or edited post. public string Text { get; set; } public PrivaPubStatus Privapub { get; set; } public Quote Quote { get; set; } public int QuotesCount { get; set; } } public class StatusMention { public string Id { get; set; } public string Username { get; set; } public string Url { get; set; } public string Acct { get; set; } } public class StatusTag { public string Name { get; set; } public string Url { get; set; } } public class StatusApplication { public string Name { get; set; } public string Website { get; set; } } public class Quote { public string State { get; set; } public Status QuotedStatus { get; set; } public string QuotedStatusId { get; set; } } public class StatusContext { public List Ancestors { get; set; } = []; public List Descendants { get; set; } = []; } public class Poll { public string Id { get; set; } public DateTime? ExpiresAt { get; set; } public bool Expired { get; set; } public bool Multiple { get; set; } public int VotesCount { get; set; } public int? VotersCount { get; set; } public bool? Voted { get; set; } public List Options { get; set; } = []; } public class PollOption { public string Title { get; set; } public int? VotesCount { get; set; } } public class PreviewCard { public string Url { get; set; } public string Title { get; set; } public string Description { get; set; } public string Type { get; set; } public string ProviderName { get; set; } public string Image { get; set; } public string ImageDescription { get; set; } public int Width { get; set; } public int Height { get; set; } public string Blurhash { get; set; } }