public override int GetHashCode()
        {
            int hashCode = -988778351;

            if (Name != null)
            {
                hashCode += Name.GetHashCode();
            }

            if (TimePeriodIds != null)
            {
                hashCode += TimePeriodIds.GetHashCode();
            }

            if (DiscountId != null)
            {
                hashCode += DiscountId.GetHashCode();
            }

            if (MatchProductsId != null)
            {
                hashCode += MatchProductsId.GetHashCode();
            }

            if (ApplyProductsId != null)
            {
                hashCode += ApplyProductsId.GetHashCode();
            }

            if (ExcludeProductsId != null)
            {
                hashCode += ExcludeProductsId.GetHashCode();
            }

            if (ValidFromDate != null)
            {
                hashCode += ValidFromDate.GetHashCode();
            }

            if (ValidFromLocalTime != null)
            {
                hashCode += ValidFromLocalTime.GetHashCode();
            }

            if (ValidUntilDate != null)
            {
                hashCode += ValidUntilDate.GetHashCode();
            }

            if (ValidUntilLocalTime != null)
            {
                hashCode += ValidUntilLocalTime.GetHashCode();
            }

            if (ExcludeStrategy != null)
            {
                hashCode += ExcludeStrategy.GetHashCode();
            }

            return(hashCode);
        }