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 List Fields { get; set; } = new(); public Source Source { 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 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 object 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 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 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; } } }