using System.Xml.Linq;

namespace Billing.Models;

public class Category : BaseModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int? ParentId { get; set; }

    public override void OnXmlDeserialize(XElement node)
    {
        Id = Read(node, nameof(Id), 0);
        Name = Read(node, nameof(Name), string.Empty);
        var parentId = Read(node, nameof(ParentId), -1);
        if (parentId >= 0)
        {
            ParentId = parentId;
        }
    }

    public override void OnXmlSerialize(XElement node)
    {
        Write(node, nameof(Id), Id);
        Write(node, nameof(Name), Name);
        if (ParentId != null)
        {
            Write(node, nameof(ParentId), ParentId.Value);
        }
    }
}