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