public override int GetHashCode()
        {
            int hashCode = 114929036;

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

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

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

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

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

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

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

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

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

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

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

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

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

            return(hashCode);
        }
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            if (obj == this)
            {
                return(true);
            }

            return(obj is BusinessAppointmentSettings other &&
                   ((LocationTypes == null && other.LocationTypes == null) || (LocationTypes?.Equals(other.LocationTypes) == true)) &&
                   ((AlignmentTime == null && other.AlignmentTime == null) || (AlignmentTime?.Equals(other.AlignmentTime) == true)) &&
                   ((MinBookingLeadTimeSeconds == null && other.MinBookingLeadTimeSeconds == null) || (MinBookingLeadTimeSeconds?.Equals(other.MinBookingLeadTimeSeconds) == true)) &&
                   ((MaxBookingLeadTimeSeconds == null && other.MaxBookingLeadTimeSeconds == null) || (MaxBookingLeadTimeSeconds?.Equals(other.MaxBookingLeadTimeSeconds) == true)) &&
                   ((AnyTeamMemberBookingEnabled == null && other.AnyTeamMemberBookingEnabled == null) || (AnyTeamMemberBookingEnabled?.Equals(other.AnyTeamMemberBookingEnabled) == true)) &&
                   ((MultipleServiceBookingEnabled == null && other.MultipleServiceBookingEnabled == null) || (MultipleServiceBookingEnabled?.Equals(other.MultipleServiceBookingEnabled) == true)) &&
                   ((MaxAppointmentsPerDayLimitType == null && other.MaxAppointmentsPerDayLimitType == null) || (MaxAppointmentsPerDayLimitType?.Equals(other.MaxAppointmentsPerDayLimitType) == true)) &&
                   ((MaxAppointmentsPerDayLimit == null && other.MaxAppointmentsPerDayLimit == null) || (MaxAppointmentsPerDayLimit?.Equals(other.MaxAppointmentsPerDayLimit) == true)) &&
                   ((CancellationWindowSeconds == null && other.CancellationWindowSeconds == null) || (CancellationWindowSeconds?.Equals(other.CancellationWindowSeconds) == true)) &&
                   ((CancellationFeeMoney == null && other.CancellationFeeMoney == null) || (CancellationFeeMoney?.Equals(other.CancellationFeeMoney) == true)) &&
                   ((CancellationPolicy == null && other.CancellationPolicy == null) || (CancellationPolicy?.Equals(other.CancellationPolicy) == true)) &&
                   ((CancellationPolicyText == null && other.CancellationPolicyText == null) || (CancellationPolicyText?.Equals(other.CancellationPolicyText) == true)) &&
                   ((SkipBookingFlowStaffSelection == null && other.SkipBookingFlowStaffSelection == null) || (SkipBookingFlowStaffSelection?.Equals(other.SkipBookingFlowStaffSelection) == true)));
        }