namespace Uwaa.Pleroma; public class Attachment { /// /// The ID of the attachment in the database. /// [JsonPropertyName("id")] public string ID { get; set; } = null!; /// /// Alternate text that describes what is in the media attachment, to be used for the visually impaired or when media attachments do not load /// [JsonPropertyName("description")] public string? Description { get; set; } /// /// Additional pleroma-specific data. /// [JsonPropertyName("pleroma")] public PleromaAttachmentData Pleroma { get; set; } = null!; /// /// The location of a scaled-down preview of the attachment /// [JsonPropertyName("preview_url")] public string PreviewURL { get; set; } = null!; /// /// The location of the full-size original attachment on the remote website. String (URL), or null if the attachment is local /// [JsonPropertyName("remote_url")] public string? RemoteURL { get; set; } /// /// A shorter URL for the attachment /// [JsonPropertyName("text_url")] public string? TextURL { get; set; } /// /// The type of the attachment /// [JsonPropertyName("type")] public AttachmentType Type { get; set; } /// /// The location of the original full-size attachment /// [JsonPropertyName("url")] public string URL { get; set; } = null!; } [JsonConverter(typeof(EnumLowerCaseConverter))] public enum AttachmentType { Unknown, Image, Video, Audio, } /// /// Additional pleroma-specific data for an . /// public class PleromaAttachmentData { /// /// MIME type of the attachment /// [JsonPropertyName("mime_type")] public string Content { get; set; } = null!; /// /// Name of the attachment, typically the filename /// [JsonPropertyName("name")] public string Name { get; set; } = null!; }