using Core.Abstractions.DomainObjects;
using Core.Enumerations;

namespace Core.DomainObjects.L10n {
  public class PostItemL10n : DomainObjectBase<PostItemL10n> {
    public Locales Locale { get; set; }
    public string Slug { get; set; }
    public string Description { get; set; }
    public string Title { get; set; }
    public string Text { get; set; }
    public TextFormat TextFormat { get; set; }
    public string PlainText { get; set; }
    public string ShortText { get; set; }
    public List<string>? Badges { get; set; }

    public override int GetHashCode() {
      unchecked {
        int hash = 17;
        hash = hash * 23 + Locale.GetHashCode();
        hash = hash * 23 + Slug.GetHashCode();
        hash = hash * 23 + Description.GetHashCode();
        hash = hash * 23 + Title.GetHashCode();
        hash = hash * 23 + Text.GetHashCode();
        hash = hash * 23 + TextFormat.GetHashCode();
        hash = hash * 23 + ShortText.GetHashCode();
        hash = hash * 23 + Badges.Sum(x => x.GetHashCode());
        return hash;
      }
    }
  }
}
