public bool DeepEquals(DestinyVendorCategoryEntryDefinition?other)
 {
     return(other is not null &&
            CategoryIndex == other.CategoryIndex &&
            SortValue == other.SortValue &&
            CategoryHash == other.CategoryHash &&
            QuantityAvailable == other.QuantityAvailable &&
            ShowUnavailableItems == other.ShowUnavailableItems &&
            HideIfNoCurrency == other.HideIfNoCurrency &&
            HideFromRegularPurchase == other.HideFromRegularPurchase &&
            BuyStringOverride == other.BuyStringOverride &&
            DisabledDescription == other.DisabledDescription &&
            DisplayTitle == other.DisplayTitle &&
            (Overlay is not null ? Overlay.DeepEquals(other.Overlay) : other.Overlay is null) &&
            VendorItemIndexes.DeepEqualsListNaive(other.VendorItemIndexes) &&
            IsPreview == other.IsPreview &&
            IsDisplayOnly == other.IsDisplayOnly &&
            ResetIntervalMinutesOverride == other.ResetIntervalMinutesOverride &&
            ResetOffsetMinutesOverride == other.ResetOffsetMinutesOverride);
 }
 public void Update(DestinyVendorCategoryEntryDefinition?other)
 {
     if (other is null)
     {
         return;
     }
     if (CategoryIndex != other.CategoryIndex)
     {
         CategoryIndex = other.CategoryIndex;
         OnPropertyChanged(nameof(CategoryIndex));
     }
     if (SortValue != other.SortValue)
     {
         SortValue = other.SortValue;
         OnPropertyChanged(nameof(SortValue));
     }
     if (CategoryHash != other.CategoryHash)
     {
         CategoryHash = other.CategoryHash;
         OnPropertyChanged(nameof(CategoryHash));
     }
     if (QuantityAvailable != other.QuantityAvailable)
     {
         QuantityAvailable = other.QuantityAvailable;
         OnPropertyChanged(nameof(QuantityAvailable));
     }
     if (ShowUnavailableItems != other.ShowUnavailableItems)
     {
         ShowUnavailableItems = other.ShowUnavailableItems;
         OnPropertyChanged(nameof(ShowUnavailableItems));
     }
     if (HideIfNoCurrency != other.HideIfNoCurrency)
     {
         HideIfNoCurrency = other.HideIfNoCurrency;
         OnPropertyChanged(nameof(HideIfNoCurrency));
     }
     if (HideFromRegularPurchase != other.HideFromRegularPurchase)
     {
         HideFromRegularPurchase = other.HideFromRegularPurchase;
         OnPropertyChanged(nameof(HideFromRegularPurchase));
     }
     if (BuyStringOverride != other.BuyStringOverride)
     {
         BuyStringOverride = other.BuyStringOverride;
         OnPropertyChanged(nameof(BuyStringOverride));
     }
     if (DisabledDescription != other.DisabledDescription)
     {
         DisabledDescription = other.DisabledDescription;
         OnPropertyChanged(nameof(DisabledDescription));
     }
     if (DisplayTitle != other.DisplayTitle)
     {
         DisplayTitle = other.DisplayTitle;
         OnPropertyChanged(nameof(DisplayTitle));
     }
     if (!Overlay.DeepEquals(other.Overlay))
     {
         Overlay.Update(other.Overlay);
         OnPropertyChanged(nameof(Overlay));
     }
     if (!VendorItemIndexes.DeepEqualsListNaive(other.VendorItemIndexes))
     {
         VendorItemIndexes = other.VendorItemIndexes;
         OnPropertyChanged(nameof(VendorItemIndexes));
     }
     if (IsPreview != other.IsPreview)
     {
         IsPreview = other.IsPreview;
         OnPropertyChanged(nameof(IsPreview));
     }
     if (IsDisplayOnly != other.IsDisplayOnly)
     {
         IsDisplayOnly = other.IsDisplayOnly;
         OnPropertyChanged(nameof(IsDisplayOnly));
     }
     if (ResetIntervalMinutesOverride != other.ResetIntervalMinutesOverride)
     {
         ResetIntervalMinutesOverride = other.ResetIntervalMinutesOverride;
         OnPropertyChanged(nameof(ResetIntervalMinutesOverride));
     }
     if (ResetOffsetMinutesOverride != other.ResetOffsetMinutesOverride)
     {
         ResetOffsetMinutesOverride = other.ResetOffsetMinutesOverride;
         OnPropertyChanged(nameof(ResetOffsetMinutesOverride));
     }
 }