using System;
using System.Collections.Generic;
using System.Xml.Serialization;
namespace API.DTOs.OPDS
{
    /// 
    ///
    /// 
    [XmlRoot("feed", Namespace = "http://www.w3.org/2005/Atom")]
    public class Feed
    {
        [XmlElement("updated")]
        public string Updated { get; init; } = DateTime.UtcNow.ToString("s");
        [XmlElement("id")]
        public string Id { get; set; }
        [XmlElement("title")]
        public string Title { get; set; }
        [XmlElement("icon")]
        public string Icon { get; set; } = "/favicon.ico";
        [XmlElement("author")]
        public Author Author { get; set; } = new Author()
        {
            Name = "Kavita",
            Uri = "https://kavitareader.com"
        };
        [XmlElement("totalResults", Namespace = "http://a9.com/-/spec/opensearch/1.1/")]
        public int? Total { get; set; } = null;
        [XmlElement("itemsPerPage", Namespace = "http://a9.com/-/spec/opensearch/1.1/")]
        public int? ItemsPerPage { get; set; } = null;
        [XmlElement("startIndex", Namespace = "http://a9.com/-/spec/opensearch/1.1/")]
        public int? StartIndex { get; set; } = null;
        [XmlElement("link")]
        public List Links { get; set; } = new List() ;
        [XmlElement("entry")]
        public List Entries { get; set; } = new List();
        public bool ShouldSerializeTotal()
        {
            return Total.HasValue;
        }
        public bool ShouldSerializeItemsPerPage()
        {
            return ItemsPerPage.HasValue;
        }
        public bool ShouldSerializeStartIndex()
        {
            return StartIndex.HasValue;
        }
    }
}