using Core.Abstractions.DomainObjects;

namespace Core.DomainObjects.Documents {
  public class BlogItem  : PostItemBase<BlogItem> {

    public uint? ReadTime { get; set; }

    public uint? Likes { get; set; }

    public override int GetHashCode() {
      unchecked {
        int hash = 17;
        hash = hash * 23 + Id.GetHashCode();
        hash = hash * 23 + SiteId.GetHashCode();
        hash = hash * 23 + L10n.GetHashCode();
        if (MediaAttachments != null)
          hash = hash * 23 + MediaAttachments.Sum(x => x.GetHashCode());
        hash = hash * 23 + Author.GetHashCode();
        hash = hash * 23 + Created.GetHashCode();
        if(Tags != null)
          hash = hash * 23 + Tags.Sum(x => x.GetHashCode());

        if(Categories != null)
          hash = hash * 23 + Categories.Sum(x => x.GetHashCode());

        hash = hash * 23 + ReadTime.GetHashCode();
        hash = hash * 23 + Likes.GetHashCode();
       
        return hash;
      }
    }
  }
}
