using System;
using System.Collections.Generic;
using System.Xml.Serialization;
namespace API.DTOs.OPDS;
#nullable enable
public sealed record FeedEntry
{
    [XmlElement("updated")]
    public string Updated { get; init; } = DateTime.UtcNow.ToString("s");
    [XmlElement("id")]
    public required string Id { get; set; }
    [XmlElement("title")]
    public required string Title { get; set; }
    [XmlElement("summary")]
    public string? Summary { get; set; }
    /// 
    /// Represents Size of the Entry
    /// Tag: , ElementName = "dcterms:extent"
    /// 2 MB
    /// 
    [XmlElement("extent", Namespace = "http://purl.org/dc/terms/")]
    public string? Extent { get; set; }
    /// 
    /// Format of the file
    /// https://dublincore.org/specifications/dublin-core/dcmi-terms/
    /// 
    [XmlElement("format", Namespace = "http://purl.org/dc/terms/format")]
    public string? Format { get; set; }
    [XmlElement("language", Namespace = "http://purl.org/dc/terms/")]
    public string? Language { get; set; }
    [XmlElement("content")]
    public FeedEntryContent? Content { get; set; }
    [XmlElement("link")]
    public List Links { get; set; } = new List();
    [XmlElement("author")]
    public List Authors { get; set; } = new List();
    [XmlElement("category")]
    public List Categories { get; set; } = new List();
}