namespace decePubClient.Models.Mastodon; /// Status.privapub: what a Mastodon status cannot say (PrivaPub's Mastodon client API invariant 7). public class PrivaPubStatus { /// The ActivityPub type of a remote object: Note, Article, Page, Video, Audio, Event, Question… 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; } /// A remote post's own place (Pixelfed's location), shown only. public PrivaPubPlace Place { get; set; } public PrivaPubVotes Votes { get; set; } } 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 class PrivaPubVideo { public double? Duration { get; set; } public List Variants { get; set; } = []; public bool IsLive { get; set; } public long? Views { get; set; } public string Licence { get; set; } public string Category { get; set; } } public class PrivaPubAudio { public double? Duration { get; set; } public List Variants { get; set; } = []; public string Album { get; set; } public string Licence { get; set; } } public class PrivaPubEvent { public DateTime? Start { get; set; } public DateTime? End { get; set; } public string TimeZone { get; set; } public List Places { get; set; } = []; public string OnlineUrl { get; set; } public int? Participants { get; set; } public int? Capacity { get; set; } public string Status { get; set; } } public class PrivaPubPlace { public string Name { get; set; } public string Address { get; set; } public string Country { 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; } }