using System; using System.Xml.Serialization; namespace API.DTOs.OPDS; public class FeedLink { [XmlIgnore] public bool IsPageStream { get; set; } /// /// Relation on the Link /// [XmlAttribute("rel")] public string Rel { get; set; } /// /// Should be any of the types here /// [XmlAttribute("type")] public string Type { get; set; } [XmlAttribute("href")] public string Href { get; set; } [XmlAttribute("title")] public string Title { get; set; } [XmlAttribute("count", Namespace = "http://vaemendis.net/opds-pse/ns")] public int TotalPages { get; set; } /// /// lastRead MUST provide the last page read for this document. The numbering starts at 1. /// [XmlAttribute("lastRead", Namespace = "http://vaemendis.net/opds-pse/ns")] public int LastRead { get; set; } = -1; /// /// lastReadDate MAY provide the date of when the lastRead attribute was last updated. /// /// Attribute MUST conform Atom's Date construct [XmlAttribute("lastReadDate", Namespace = "http://vaemendis.net/opds-pse/ns")] public string LastReadDate { get; set; } public bool ShouldSerializeLastReadDate() { return IsPageStream; } public bool ShouldSerializeLastRead() { return LastRead >= 0; } public bool ShouldSerializeTitle() { return !string.IsNullOrEmpty(Title); } public bool ShouldSerializeTotalPages() { return TotalPages > 0; } }