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!;
}