using System.Xml;
using System.Xml.Serialization;
using SabreTools.Data.Models.Metadata;

namespace SabreTools.Data.Models.Listxml
{
    [XmlRoot("disk")]
    public class Disk
    {
        [Required]
        [XmlAttribute("name")]
        public string? Name { get; set; }

        /// <remarks>Only present in older versions</remarks>
        [XmlAttribute("md5")]
        public string? MD5 { get; set; }

        [XmlAttribute("sha1")]
        public string? SHA1 { get; set; }

        [XmlAttribute("merge")]
        public string? Merge { get; set; }

        [XmlAttribute("region")]
        public string? Region { get; set; }

        [XmlAttribute("index")]
        public long? Index { get; set; }

        /// <remarks>(yes|no) "no"</remarks>
        [XmlAttribute("writable")]
        public bool? Writable { get; set; }

        /// <remarks>(baddump|nodump|good) "good"</remarks>
        [XmlAttribute("status")]
        public ItemStatus? Status { get; set; }

        /// <remarks>(yes|no) "no"</remarks>
        [XmlAttribute("optional")]
        public bool? Optional { get; set; }
    }
}
