namespace PrivaPub.Api.Mastodon.Entities { public class Account { public string Id { get; set; } public string Username { get; set; } public string Acct { get; set; } public string DisplayName { get; set; } public bool Locked { get; set; } public bool Bot { get; set; } public bool? Discoverable { get; set; } public bool Indexable { get; set; } public bool Group { get; set; } public string CreatedAt { get; set; } public string Note { get; set; } public string Url { get; set; } public string Uri { get; set; } public string Avatar { get; set; } public string AvatarStatic { get; set; } public string Header { get; set; } public string HeaderStatic { get; set; } public int FollowersCount { get; set; } public int FollowingCount { get; set; } public int StatusesCount { get; set; } public string LastStatusAt { get; set; } public bool? HideCollections { get; set; } public bool Noindex { get; set; } = true; public List Emojis { get; set; } = new(); public List Roles { get; set; } = new(); public bool? Memorial { get; set; } public string AvatarDescription { get; set; } = string.Empty; public string HeaderDescription { get; set; } = string.Empty; public List Fields { get; set; } = new(); public Source Source { get; set; } } public class CustomEmojiEntity { public string Shortcode { get; set; } public string Url { get; set; } public string StaticUrl { get; set; } public bool VisibleInPicker { get; set; } public string Category { get; set; } } public class Field { public string Name { get; set; } public string Value { get; set; } public string VerifiedAt { get; set; } } public class Source { public string Privacy { get; set; } = "public"; public bool Sensitive { get; set; } public string Language { get; set; } public string Note { get; set; } = string.Empty; public List Fields { get; set; } = new(); public int FollowRequestsCount { get; set; } public string AttributionDomains { get; set; } public string QuotePolicy { get; set; } = "public"; } public class PrivaPubStatus { public string ObjectType { get; set; } public string Title { get; set; } public string Excerpt { get; set; } public string Cover { get; set; } public PrivaPubSource Source { get; set; } public PrivaPubLink Link { get; set; } public PrivaPubVideo Video { get; set; } public PrivaPubAudio Audio { get; set; } public PrivaPubEvent Event { get; set; } public PrivaPubVotes Votes { get; set; } = new(); } public class PrivaPubSource { public string Content { get; set; } public string MediaType { get; set; } } public class PrivaPubLink { public string Url { get; set; } public string Title { get; set; } public string Description { get; set; } public string Image { get; set; } public bool FromPublisher { get; set; } } public class PrivaPubVariant { public string Url { get; set; } public string MediaType { get; set; } public int? Width { get; set; } public int? Height { get; set; } public double? Fps { get; set; } public long? Size { get; set; } public List Streams { get; set; } = new(); } public class PrivaPubVideo { public double? Duration { get; set; } public List Variants { get; set; } = new(); public bool IsLive { get; set; } public int? State { get; set; } public long? Views { get; set; } public int? CommentsPolicy { get; set; } public bool? DownloadEnabled { get; set; } public string Licence { get; set; } public string Category { get; set; } public string Channel { get; set; } public List Captions { get; set; } = new(); } public class PrivaPubCaption { public string Language { get; set; } public string Url { get; set; } } public class PrivaPubAudio { public double? Duration { get; set; } public List Variants { get; set; } = new(); public string Album { get; set; } public int? Position { get; set; } public string Licence { get; set; } } public class PrivaPubEvent { public string Start { get; set; } public string End { get; set; } public string TimeZone { get; set; } public bool Floating { get; set; } public List Places { get; set; } = new(); public string OnlineUrl { get; set; } public string JoinMode { get; set; } public int? Participants { get; set; } public int? Capacity { get; set; } public string Status { get; set; } public string Category { get; set; } } public class PrivaPubPlace { public string Name { get; set; } public string Address { get; set; } public double? Latitude { get; set; } public double? Longitude { get; set; } public string Url { get; set; } } public class PrivaPubVotes { public int Up { get; set; } public int Down { get; set; } } public class QuoteEntity { public string State { get; set; } public Status QuotedStatus { get; set; } public string QuotedStatusId { get; set; } } public class QuoteApprovalEntity { public List Automatic { get; set; } = new(); public List Manual { get; set; } = new(); public string CurrentUser { get; set; } = "denied"; } public class EmojiReactionEntity { public string Name { get; set; } public int Count { get; set; } public bool Me { get; set; } public string Url { get; set; } public string StaticUrl { get; set; } } public class PleromaStatus { public List EmojiReactions { get; set; } = new(); } public class PollEntity { public string Id { get; set; } public string 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 OwnVotes { get; set; } public List Options { get; set; } = new(); public List Emojis { get; set; } = new(); } public class PollOptionEntity { public string Title { get; set; } public int? VotesCount { get; set; } } public class PreviewCard { public string Url { get; set; } public string Title { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public string Type { get; set; } = "link"; public string AuthorName { get; set; } = string.Empty; public string AuthorUrl { get; set; } = string.Empty; public string ProviderName { get; set; } = string.Empty; public string ProviderUrl { get; set; } = string.Empty; public string Html { get; set; } = string.Empty; public int Width { get; set; } public int Height { get; set; } public string Image { get; set; } public string ImageDescription { get; set; } = string.Empty; public string EmbedUrl { get; set; } = string.Empty; public string Blurhash { get; set; } public string Language { get; set; } public string PublishedAt { get; set; } public List Authors { get; set; } = new(); } 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; } = string.Empty; public string CreatedAt { get; set; } public string EditedAt { get; set; } public List Emojis { get; set; } = new(); 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; } = string.Empty; public string Visibility { get; set; } public List MediaAttachments { get; set; } = new(); public List Mentions { get; set; } = new(); public List Tags { get; set; } = new(); public PreviewCard Card { get; set; } public PollEntity Poll { get; set; } public Application Application { get; set; } public string Language { get; set; } public string Text { get; set; } public List Filtered { get; set; } = new(); public PrivaPubStatus Privapub { get; set; } public List EmojiReactions { get; set; } = new(); public PleromaStatus Pleroma { get; set; } public QuoteEntity Quote { get; set; } public int QuotesCount { get; set; } public QuoteApprovalEntity QuoteApproval { get; set; } } public class MediaAttachment { public string Id { get; set; } public string Type { get; set; } public string Url { get; set; } public string PreviewUrl { get; set; } public string RemoteUrl { get; set; } public object Meta { get; set; } public string Description { get; set; } public string Blurhash { 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 Application { public string Id { get; set; } public string Name { get; set; } public string Website { get; set; } public List Scopes { get; set; } = new(); public List RedirectUris { get; set; } = new(); public string RedirectUri { get; set; } public string ClientId { get; set; } public string ClientSecret { get; set; } public string VapidKey { get; set; } = string.Empty; } public class Relationship { public string Id { get; set; } public bool Following { get; set; } public bool ShowingReblogs { get; set; } public bool Notifying { get; set; } public List Languages { get; set; } public bool FollowedBy { get; set; } public bool Blocking { get; set; } public bool BlockedBy { get; set; } public bool Muting { get; set; } public bool MutingNotifications { get; set; } public bool Requested { get; set; } public bool RequestedBy { get; set; } public bool DomainBlocking { get; set; } public bool Endorsed { get; set; } public string Note { get; set; } = string.Empty; } public class Notification { public string Id { get; set; } public string Type { get; set; } public string CreatedAt { get; set; } public string GroupKey { get; set; } public Account Account { get; set; } public Status Status { get; set; } public string Emoji { get; set; } public string EmojiUrl { get; set; } } public class Context { public List Ancestors { get; set; } = new(); public List Descendants { get; set; } = new(); } public class StatusEdit { public string Content { get; set; } public string SpoilerText { get; set; } public bool Sensitive { get; set; } public string CreatedAt { get; set; } public Account Account { get; set; } public List MediaAttachments { get; set; } = new(); public List Emojis { get; set; } = new(); } public class StatusSource { public string Id { get; set; } public string Text { get; set; } public string SpoilerText { get; set; } } public class SearchResults { public List Accounts { get; set; } = new(); public List Statuses { get; set; } = new(); public List Hashtags { get; set; } = new(); } public class Conversation { public string Id { get; set; } public bool Unread { get; set; } public List Accounts { get; set; } = new(); public Status LastStatus { get; set; } } public class Marker { public string LastReadId { get; set; } public int Version { get; set; } public string UpdatedAt { get; set; } } }