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)));
        }
        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);
        }
 protected void ToString(List <string> toStringOutput)
 {
     toStringOutput.Add($"LocationTypes = {(LocationTypes == null ? "null" : $"[{ string.Join(", ", LocationTypes)} ]")}");
     toStringOutput.Add($"AlignmentTime = {(AlignmentTime == null ? "null" : AlignmentTime.ToString())}");
     toStringOutput.Add($"MinBookingLeadTimeSeconds = {(MinBookingLeadTimeSeconds == null ? "null" : MinBookingLeadTimeSeconds.ToString())}");
     toStringOutput.Add($"MaxBookingLeadTimeSeconds = {(MaxBookingLeadTimeSeconds == null ? "null" : MaxBookingLeadTimeSeconds.ToString())}");
     toStringOutput.Add($"AnyTeamMemberBookingEnabled = {(AnyTeamMemberBookingEnabled == null ? "null" : AnyTeamMemberBookingEnabled.ToString())}");
     toStringOutput.Add($"MultipleServiceBookingEnabled = {(MultipleServiceBookingEnabled == null ? "null" : MultipleServiceBookingEnabled.ToString())}");
     toStringOutput.Add($"MaxAppointmentsPerDayLimitType = {(MaxAppointmentsPerDayLimitType == null ? "null" : MaxAppointmentsPerDayLimitType.ToString())}");
     toStringOutput.Add($"MaxAppointmentsPerDayLimit = {(MaxAppointmentsPerDayLimit == null ? "null" : MaxAppointmentsPerDayLimit.ToString())}");
     toStringOutput.Add($"CancellationWindowSeconds = {(CancellationWindowSeconds == null ? "null" : CancellationWindowSeconds.ToString())}");
     toStringOutput.Add($"CancellationFeeMoney = {(CancellationFeeMoney == null ? "null" : CancellationFeeMoney.ToString())}");
     toStringOutput.Add($"CancellationPolicy = {(CancellationPolicy == null ? "null" : CancellationPolicy.ToString())}");
     toStringOutput.Add($"CancellationPolicyText = {(CancellationPolicyText == null ? "null" : CancellationPolicyText == string.Empty ? "" : CancellationPolicyText)}");
     toStringOutput.Add($"SkipBookingFlowStaffSelection = {(SkipBookingFlowStaffSelection == null ? "null" : SkipBookingFlowStaffSelection.ToString())}");
 }