lib/ultracart_api/models/customer.rb in ultracart_api-3.10.220 vs lib/ultracart_api/models/customer.rb in ultracart_api-4.0.32.rc

- old
+ new

@@ -1,994 +1,978 @@ -=begin -#UltraCart Rest API V2 - -#UltraCart REST API Version 2 - -OpenAPI spec version: 2.0.0 -Contact: support@ultracart.com -Generated by: https://github.com/swagger-api/swagger-codegen.git -Swagger Codegen version: 2.4.15-SNAPSHOT - -=end - -require 'date' - -module UltracartClient - class Customer - attr_accessor :activity - - # Affiliate oid - attr_accessor :affiliate_oid - - # Allow 3rd party billing - attr_accessor :allow_3rd_party_billing - - # Allow COD - attr_accessor :allow_cod - - # Allow Drop Shipping - attr_accessor :allow_drop_shipping - - # Allow purchase orders by this customer - attr_accessor :allow_purchase_order - - # Allow quote request - attr_accessor :allow_quote_request - - # Allow selection of residential or business address type - attr_accessor :allow_selection_of_address_type - - # Attachments - attr_accessor :attachments - - # Auto approve COD - attr_accessor :auto_approve_cod - - # Auto approve purchase orders by this customer - attr_accessor :auto_approve_purchase_order - - # Automatic merchant notes are added to every order placed - attr_accessor :automatic_merchant_notes - - # Billing addresses for this customer - attr_accessor :billing - - # Business notes (internally visible only) - attr_accessor :business_notes - - # Credit Cards for this customer - attr_accessor :cards - - # Additional emails to CC notification - attr_accessor :cc_emails - - # Customer profile object identifier - attr_accessor :customer_profile_oid - - # DHL account number - attr_accessor :dhl_account_number - - # DHL duty account number - attr_accessor :dhl_duty_account_number - - # Do not send mail (null will not update) - attr_accessor :do_not_send_mail - - attr_accessor :edi - - # Email address of this customer profile - attr_accessor :email - - # Exempt shipping handling charge - attr_accessor :exempt_shipping_handling_charge - - # FedEx account number - attr_accessor :fedex_account_number - - # This customer always receives free shipping - attr_accessor :free_shipping - - # If free_shipping is true, this is the minimum subtotal required for free shipping - attr_accessor :free_shipping_minimum - - # Last modified by - attr_accessor :last_modified_by - - # Last modified date - attr_accessor :last_modified_dts - - attr_accessor :loyalty - - # Maximum item count - attr_accessor :maximum_item_count - - # Merchant ID - attr_accessor :merchant_id - - # Minimum item count - attr_accessor :minimum_item_count - - # Minimum subtotal - attr_accessor :minimum_subtotal - - # No coupons - attr_accessor :no_coupons - - # No free shipping regardless of coupons or item level settings - attr_accessor :no_free_shipping - - # No realtime charge - attr_accessor :no_realtime_charge - - # Orders associated with this customer profile - attr_accessor :orders - - attr_accessor :orders_summary - - # Password (may only be set, never read) - attr_accessor :password - - # Pricing tiers for this customer - attr_accessor :pricing_tiers - - attr_accessor :privacy - - # Properties for this customer - attr_accessor :properties - - # QuickBooks class to import this customer as - attr_accessor :qb_class - - # QuickBooks name to import this customer as - attr_accessor :qb_code - - # QuickBooks tax exemption reason code - attr_accessor :qb_tax_exemption_reason_code - - # Quotes associated with this customer profile - attr_accessor :quotes - - attr_accessor :quotes_summary - - # Referral Source - attr_accessor :referral_source - - attr_accessor :reviewer - - # Sales rep code - attr_accessor :sales_rep_code - - # Send signup notification, if true during customer creation, will send a notification. - attr_accessor :send_signup_notification - - # Shipping addresses for this customer - attr_accessor :shipping - - # Signup date - attr_accessor :signup_dts - - # Software entitlements owned by this customer - attr_accessor :software_entitlements - - # Suppress buySAFE (deprecated) - attr_accessor :suppress_buysafe - - # Tags for this customer - attr_accessor :tags - - attr_accessor :tax_codes - - # True if the customer is tax exempt - attr_accessor :tax_exempt - - # Tax ID - attr_accessor :tax_id - - # Terms for this customer - attr_accessor :terms - - # True if the customer should be tracked separately in QuickBooks - attr_accessor :track_separately - - # Unapproved - attr_accessor :unapproved - - # UPS account number - attr_accessor :ups_account_number - - # Website url - attr_accessor :website_url - - # Attribute mapping from ruby-style variable name to JSON key. - def self.attribute_map - { - :'activity' => :'activity', - :'affiliate_oid' => :'affiliate_oid', - :'allow_3rd_party_billing' => :'allow_3rd_party_billing', - :'allow_cod' => :'allow_cod', - :'allow_drop_shipping' => :'allow_drop_shipping', - :'allow_purchase_order' => :'allow_purchase_order', - :'allow_quote_request' => :'allow_quote_request', - :'allow_selection_of_address_type' => :'allow_selection_of_address_type', - :'attachments' => :'attachments', - :'auto_approve_cod' => :'auto_approve_cod', - :'auto_approve_purchase_order' => :'auto_approve_purchase_order', - :'automatic_merchant_notes' => :'automatic_merchant_notes', - :'billing' => :'billing', - :'business_notes' => :'business_notes', - :'cards' => :'cards', - :'cc_emails' => :'cc_emails', - :'customer_profile_oid' => :'customer_profile_oid', - :'dhl_account_number' => :'dhl_account_number', - :'dhl_duty_account_number' => :'dhl_duty_account_number', - :'do_not_send_mail' => :'do_not_send_mail', - :'edi' => :'edi', - :'email' => :'email', - :'exempt_shipping_handling_charge' => :'exempt_shipping_handling_charge', - :'fedex_account_number' => :'fedex_account_number', - :'free_shipping' => :'free_shipping', - :'free_shipping_minimum' => :'free_shipping_minimum', - :'last_modified_by' => :'last_modified_by', - :'last_modified_dts' => :'last_modified_dts', - :'loyalty' => :'loyalty', - :'maximum_item_count' => :'maximum_item_count', - :'merchant_id' => :'merchant_id', - :'minimum_item_count' => :'minimum_item_count', - :'minimum_subtotal' => :'minimum_subtotal', - :'no_coupons' => :'no_coupons', - :'no_free_shipping' => :'no_free_shipping', - :'no_realtime_charge' => :'no_realtime_charge', - :'orders' => :'orders', - :'orders_summary' => :'orders_summary', - :'password' => :'password', - :'pricing_tiers' => :'pricing_tiers', - :'privacy' => :'privacy', - :'properties' => :'properties', - :'qb_class' => :'qb_class', - :'qb_code' => :'qb_code', - :'qb_tax_exemption_reason_code' => :'qb_tax_exemption_reason_code', - :'quotes' => :'quotes', - :'quotes_summary' => :'quotes_summary', - :'referral_source' => :'referral_source', - :'reviewer' => :'reviewer', - :'sales_rep_code' => :'sales_rep_code', - :'send_signup_notification' => :'send_signup_notification', - :'shipping' => :'shipping', - :'signup_dts' => :'signup_dts', - :'software_entitlements' => :'software_entitlements', - :'suppress_buysafe' => :'suppress_buysafe', - :'tags' => :'tags', - :'tax_codes' => :'tax_codes', - :'tax_exempt' => :'tax_exempt', - :'tax_id' => :'tax_id', - :'terms' => :'terms', - :'track_separately' => :'track_separately', - :'unapproved' => :'unapproved', - :'ups_account_number' => :'ups_account_number', - :'website_url' => :'website_url' - } - end - - # Attribute type mapping. - def self.swagger_types - { - :'activity' => :'CustomerActivity', - :'affiliate_oid' => :'Integer', - :'allow_3rd_party_billing' => :'BOOLEAN', - :'allow_cod' => :'BOOLEAN', - :'allow_drop_shipping' => :'BOOLEAN', - :'allow_purchase_order' => :'BOOLEAN', - :'allow_quote_request' => :'BOOLEAN', - :'allow_selection_of_address_type' => :'BOOLEAN', - :'attachments' => :'Array<CustomerAttachment>', - :'auto_approve_cod' => :'BOOLEAN', - :'auto_approve_purchase_order' => :'BOOLEAN', - :'automatic_merchant_notes' => :'String', - :'billing' => :'Array<CustomerBilling>', - :'business_notes' => :'String', - :'cards' => :'Array<CustomerCard>', - :'cc_emails' => :'Array<CustomerEmail>', - :'customer_profile_oid' => :'Integer', - :'dhl_account_number' => :'String', - :'dhl_duty_account_number' => :'String', - :'do_not_send_mail' => :'BOOLEAN', - :'edi' => :'CustomerEDI', - :'email' => :'String', - :'exempt_shipping_handling_charge' => :'BOOLEAN', - :'fedex_account_number' => :'String', - :'free_shipping' => :'BOOLEAN', - :'free_shipping_minimum' => :'Float', - :'last_modified_by' => :'String', - :'last_modified_dts' => :'String', - :'loyalty' => :'CustomerLoyalty', - :'maximum_item_count' => :'Integer', - :'merchant_id' => :'String', - :'minimum_item_count' => :'Integer', - :'minimum_subtotal' => :'Float', - :'no_coupons' => :'BOOLEAN', - :'no_free_shipping' => :'BOOLEAN', - :'no_realtime_charge' => :'BOOLEAN', - :'orders' => :'Array<Order>', - :'orders_summary' => :'CustomerOrdersSummary', - :'password' => :'String', - :'pricing_tiers' => :'Array<CustomerPricingTier>', - :'privacy' => :'CustomerPrivacy', - :'properties' => :'Array<CustomerProperty>', - :'qb_class' => :'String', - :'qb_code' => :'String', - :'qb_tax_exemption_reason_code' => :'Integer', - :'quotes' => :'Array<Order>', - :'quotes_summary' => :'CustomerQuotesSummary', - :'referral_source' => :'String', - :'reviewer' => :'CustomerReviewer', - :'sales_rep_code' => :'String', - :'send_signup_notification' => :'BOOLEAN', - :'shipping' => :'Array<CustomerShipping>', - :'signup_dts' => :'String', - :'software_entitlements' => :'Array<CustomerSoftwareEntitlement>', - :'suppress_buysafe' => :'BOOLEAN', - :'tags' => :'Array<CustomerTag>', - :'tax_codes' => :'CustomerTaxCodes', - :'tax_exempt' => :'BOOLEAN', - :'tax_id' => :'String', - :'terms' => :'String', - :'track_separately' => :'BOOLEAN', - :'unapproved' => :'BOOLEAN', - :'ups_account_number' => :'String', - :'website_url' => :'String' - } - end - - # Initializes the object - # @param [Hash] attributes Model attributes in the form of hash - def initialize(attributes = {}) - return unless attributes.is_a?(Hash) - - # convert string to symbol for hash key - attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v } - - if attributes.has_key?(:'activity') - self.activity = attributes[:'activity'] - end - - if attributes.has_key?(:'affiliate_oid') - self.affiliate_oid = attributes[:'affiliate_oid'] - end - - if attributes.has_key?(:'allow_3rd_party_billing') - self.allow_3rd_party_billing = attributes[:'allow_3rd_party_billing'] - end - - if attributes.has_key?(:'allow_cod') - self.allow_cod = attributes[:'allow_cod'] - end - - if attributes.has_key?(:'allow_drop_shipping') - self.allow_drop_shipping = attributes[:'allow_drop_shipping'] - end - - if attributes.has_key?(:'allow_purchase_order') - self.allow_purchase_order = attributes[:'allow_purchase_order'] - end - - if attributes.has_key?(:'allow_quote_request') - self.allow_quote_request = attributes[:'allow_quote_request'] - end - - if attributes.has_key?(:'allow_selection_of_address_type') - self.allow_selection_of_address_type = attributes[:'allow_selection_of_address_type'] - end - - if attributes.has_key?(:'attachments') - if (value = attributes[:'attachments']).is_a?(Array) - self.attachments = value - end - end - - if attributes.has_key?(:'auto_approve_cod') - self.auto_approve_cod = attributes[:'auto_approve_cod'] - end - - if attributes.has_key?(:'auto_approve_purchase_order') - self.auto_approve_purchase_order = attributes[:'auto_approve_purchase_order'] - end - - if attributes.has_key?(:'automatic_merchant_notes') - self.automatic_merchant_notes = attributes[:'automatic_merchant_notes'] - end - - if attributes.has_key?(:'billing') - if (value = attributes[:'billing']).is_a?(Array) - self.billing = value - end - end - - if attributes.has_key?(:'business_notes') - self.business_notes = attributes[:'business_notes'] - end - - if attributes.has_key?(:'cards') - if (value = attributes[:'cards']).is_a?(Array) - self.cards = value - end - end - - if attributes.has_key?(:'cc_emails') - if (value = attributes[:'cc_emails']).is_a?(Array) - self.cc_emails = value - end - end - - if attributes.has_key?(:'customer_profile_oid') - self.customer_profile_oid = attributes[:'customer_profile_oid'] - end - - if attributes.has_key?(:'dhl_account_number') - self.dhl_account_number = attributes[:'dhl_account_number'] - end - - if attributes.has_key?(:'dhl_duty_account_number') - self.dhl_duty_account_number = attributes[:'dhl_duty_account_number'] - end - - if attributes.has_key?(:'do_not_send_mail') - self.do_not_send_mail = attributes[:'do_not_send_mail'] - end - - if attributes.has_key?(:'edi') - self.edi = attributes[:'edi'] - end - - if attributes.has_key?(:'email') - self.email = attributes[:'email'] - end - - if attributes.has_key?(:'exempt_shipping_handling_charge') - self.exempt_shipping_handling_charge = attributes[:'exempt_shipping_handling_charge'] - end - - if attributes.has_key?(:'fedex_account_number') - self.fedex_account_number = attributes[:'fedex_account_number'] - end - - if attributes.has_key?(:'free_shipping') - self.free_shipping = attributes[:'free_shipping'] - end - - if attributes.has_key?(:'free_shipping_minimum') - self.free_shipping_minimum = attributes[:'free_shipping_minimum'] - end - - if attributes.has_key?(:'last_modified_by') - self.last_modified_by = attributes[:'last_modified_by'] - end - - if attributes.has_key?(:'last_modified_dts') - self.last_modified_dts = attributes[:'last_modified_dts'] - end - - if attributes.has_key?(:'loyalty') - self.loyalty = attributes[:'loyalty'] - end - - if attributes.has_key?(:'maximum_item_count') - self.maximum_item_count = attributes[:'maximum_item_count'] - end - - if attributes.has_key?(:'merchant_id') - self.merchant_id = attributes[:'merchant_id'] - end - - if attributes.has_key?(:'minimum_item_count') - self.minimum_item_count = attributes[:'minimum_item_count'] - end - - if attributes.has_key?(:'minimum_subtotal') - self.minimum_subtotal = attributes[:'minimum_subtotal'] - end - - if attributes.has_key?(:'no_coupons') - self.no_coupons = attributes[:'no_coupons'] - end - - if attributes.has_key?(:'no_free_shipping') - self.no_free_shipping = attributes[:'no_free_shipping'] - end - - if attributes.has_key?(:'no_realtime_charge') - self.no_realtime_charge = attributes[:'no_realtime_charge'] - end - - if attributes.has_key?(:'orders') - if (value = attributes[:'orders']).is_a?(Array) - self.orders = value - end - end - - if attributes.has_key?(:'orders_summary') - self.orders_summary = attributes[:'orders_summary'] - end - - if attributes.has_key?(:'password') - self.password = attributes[:'password'] - end - - if attributes.has_key?(:'pricing_tiers') - if (value = attributes[:'pricing_tiers']).is_a?(Array) - self.pricing_tiers = value - end - end - - if attributes.has_key?(:'privacy') - self.privacy = attributes[:'privacy'] - end - - if attributes.has_key?(:'properties') - if (value = attributes[:'properties']).is_a?(Array) - self.properties = value - end - end - - if attributes.has_key?(:'qb_class') - self.qb_class = attributes[:'qb_class'] - end - - if attributes.has_key?(:'qb_code') - self.qb_code = attributes[:'qb_code'] - end - - if attributes.has_key?(:'qb_tax_exemption_reason_code') - self.qb_tax_exemption_reason_code = attributes[:'qb_tax_exemption_reason_code'] - end - - if attributes.has_key?(:'quotes') - if (value = attributes[:'quotes']).is_a?(Array) - self.quotes = value - end - end - - if attributes.has_key?(:'quotes_summary') - self.quotes_summary = attributes[:'quotes_summary'] - end - - if attributes.has_key?(:'referral_source') - self.referral_source = attributes[:'referral_source'] - end - - if attributes.has_key?(:'reviewer') - self.reviewer = attributes[:'reviewer'] - end - - if attributes.has_key?(:'sales_rep_code') - self.sales_rep_code = attributes[:'sales_rep_code'] - end - - if attributes.has_key?(:'send_signup_notification') - self.send_signup_notification = attributes[:'send_signup_notification'] - end - - if attributes.has_key?(:'shipping') - if (value = attributes[:'shipping']).is_a?(Array) - self.shipping = value - end - end - - if attributes.has_key?(:'signup_dts') - self.signup_dts = attributes[:'signup_dts'] - end - - if attributes.has_key?(:'software_entitlements') - if (value = attributes[:'software_entitlements']).is_a?(Array) - self.software_entitlements = value - end - end - - if attributes.has_key?(:'suppress_buysafe') - self.suppress_buysafe = attributes[:'suppress_buysafe'] - end - - if attributes.has_key?(:'tags') - if (value = attributes[:'tags']).is_a?(Array) - self.tags = value - end - end - - if attributes.has_key?(:'tax_codes') - self.tax_codes = attributes[:'tax_codes'] - end - - if attributes.has_key?(:'tax_exempt') - self.tax_exempt = attributes[:'tax_exempt'] - end - - if attributes.has_key?(:'tax_id') - self.tax_id = attributes[:'tax_id'] - end - - if attributes.has_key?(:'terms') - self.terms = attributes[:'terms'] - end - - if attributes.has_key?(:'track_separately') - self.track_separately = attributes[:'track_separately'] - end - - if attributes.has_key?(:'unapproved') - self.unapproved = attributes[:'unapproved'] - end - - if attributes.has_key?(:'ups_account_number') - self.ups_account_number = attributes[:'ups_account_number'] - end - - if attributes.has_key?(:'website_url') - self.website_url = attributes[:'website_url'] - end - end - - # Show invalid properties with the reasons. Usually used together with valid? - # @return Array for valid properties with the reasons - def list_invalid_properties - invalid_properties = Array.new - if !@business_notes.nil? && @business_notes.to_s.length > 2000 - invalid_properties.push('invalid value for "business_notes", the character length must be smaller than or equal to 2000.') - end - - if !@dhl_account_number.nil? && @dhl_account_number.to_s.length > 20 - invalid_properties.push('invalid value for "dhl_account_number", the character length must be smaller than or equal to 20.') - end - - if !@dhl_duty_account_number.nil? && @dhl_duty_account_number.to_s.length > 20 - invalid_properties.push('invalid value for "dhl_duty_account_number", the character length must be smaller than or equal to 20.') - end - - if !@fedex_account_number.nil? && @fedex_account_number.to_s.length > 20 - invalid_properties.push('invalid value for "fedex_account_number", the character length must be smaller than or equal to 20.') - end - - if !@last_modified_by.nil? && @last_modified_by.to_s.length > 100 - invalid_properties.push('invalid value for "last_modified_by", the character length must be smaller than or equal to 100.') - end - - if !@password.nil? && @password.to_s.length > 30 - invalid_properties.push('invalid value for "password", the character length must be smaller than or equal to 30.') - end - - if !@referral_source.nil? && @referral_source.to_s.length > 50 - invalid_properties.push('invalid value for "referral_source", the character length must be smaller than or equal to 50.') - end - - if !@sales_rep_code.nil? && @sales_rep_code.to_s.length > 10 - invalid_properties.push('invalid value for "sales_rep_code", the character length must be smaller than or equal to 10.') - end - - if !@tax_id.nil? && @tax_id.to_s.length > 15 - invalid_properties.push('invalid value for "tax_id", the character length must be smaller than or equal to 15.') - end - - if !@ups_account_number.nil? && @ups_account_number.to_s.length > 20 - invalid_properties.push('invalid value for "ups_account_number", the character length must be smaller than or equal to 20.') - end - - if !@website_url.nil? && @website_url.to_s.length > 100 - invalid_properties.push('invalid value for "website_url", the character length must be smaller than or equal to 100.') - end - - invalid_properties - end - - # Check to see if the all the properties in the model are valid - # @return true if the model is valid - def valid? - return false if !@business_notes.nil? && @business_notes.to_s.length > 2000 - return false if !@dhl_account_number.nil? && @dhl_account_number.to_s.length > 20 - return false if !@dhl_duty_account_number.nil? && @dhl_duty_account_number.to_s.length > 20 - return false if !@fedex_account_number.nil? && @fedex_account_number.to_s.length > 20 - return false if !@last_modified_by.nil? && @last_modified_by.to_s.length > 100 - return false if !@password.nil? && @password.to_s.length > 30 - return false if !@referral_source.nil? && @referral_source.to_s.length > 50 - return false if !@sales_rep_code.nil? && @sales_rep_code.to_s.length > 10 - return false if !@tax_id.nil? && @tax_id.to_s.length > 15 - return false if !@ups_account_number.nil? && @ups_account_number.to_s.length > 20 - return false if !@website_url.nil? && @website_url.to_s.length > 100 - true - end - - # Custom attribute writer method with validation - # @param [Object] business_notes Value to be assigned - def business_notes=(business_notes) - if !business_notes.nil? && business_notes.to_s.length > 2000 - fail ArgumentError, 'invalid value for "business_notes", the character length must be smaller than or equal to 2000.' - end - - @business_notes = business_notes - end - - # Custom attribute writer method with validation - # @param [Object] dhl_account_number Value to be assigned - def dhl_account_number=(dhl_account_number) - if !dhl_account_number.nil? && dhl_account_number.to_s.length > 20 - fail ArgumentError, 'invalid value for "dhl_account_number", the character length must be smaller than or equal to 20.' - end - - @dhl_account_number = dhl_account_number - end - - # Custom attribute writer method with validation - # @param [Object] dhl_duty_account_number Value to be assigned - def dhl_duty_account_number=(dhl_duty_account_number) - if !dhl_duty_account_number.nil? && dhl_duty_account_number.to_s.length > 20 - fail ArgumentError, 'invalid value for "dhl_duty_account_number", the character length must be smaller than or equal to 20.' - end - - @dhl_duty_account_number = dhl_duty_account_number - end - - # Custom attribute writer method with validation - # @param [Object] fedex_account_number Value to be assigned - def fedex_account_number=(fedex_account_number) - if !fedex_account_number.nil? && fedex_account_number.to_s.length > 20 - fail ArgumentError, 'invalid value for "fedex_account_number", the character length must be smaller than or equal to 20.' - end - - @fedex_account_number = fedex_account_number - end - - # Custom attribute writer method with validation - # @param [Object] last_modified_by Value to be assigned - def last_modified_by=(last_modified_by) - if !last_modified_by.nil? && last_modified_by.to_s.length > 100 - fail ArgumentError, 'invalid value for "last_modified_by", the character length must be smaller than or equal to 100.' - end - - @last_modified_by = last_modified_by - end - - # Custom attribute writer method with validation - # @param [Object] password Value to be assigned - def password=(password) - if !password.nil? && password.to_s.length > 30 - fail ArgumentError, 'invalid value for "password", the character length must be smaller than or equal to 30.' - end - - @password = password - end - - # Custom attribute writer method with validation - # @param [Object] referral_source Value to be assigned - def referral_source=(referral_source) - if !referral_source.nil? && referral_source.to_s.length > 50 - fail ArgumentError, 'invalid value for "referral_source", the character length must be smaller than or equal to 50.' - end - - @referral_source = referral_source - end - - # Custom attribute writer method with validation - # @param [Object] sales_rep_code Value to be assigned - def sales_rep_code=(sales_rep_code) - if !sales_rep_code.nil? && sales_rep_code.to_s.length > 10 - fail ArgumentError, 'invalid value for "sales_rep_code", the character length must be smaller than or equal to 10.' - end - - @sales_rep_code = sales_rep_code - end - - # Custom attribute writer method with validation - # @param [Object] tax_id Value to be assigned - def tax_id=(tax_id) - if !tax_id.nil? && tax_id.to_s.length > 15 - fail ArgumentError, 'invalid value for "tax_id", the character length must be smaller than or equal to 15.' - end - - @tax_id = tax_id - end - - # Custom attribute writer method with validation - # @param [Object] ups_account_number Value to be assigned - def ups_account_number=(ups_account_number) - if !ups_account_number.nil? && ups_account_number.to_s.length > 20 - fail ArgumentError, 'invalid value for "ups_account_number", the character length must be smaller than or equal to 20.' - end - - @ups_account_number = ups_account_number - end - - # Custom attribute writer method with validation - # @param [Object] website_url Value to be assigned - def website_url=(website_url) - if !website_url.nil? && website_url.to_s.length > 100 - fail ArgumentError, 'invalid value for "website_url", the character length must be smaller than or equal to 100.' - end - - @website_url = website_url - end - - # Checks equality by comparing each attribute. - # @param [Object] Object to be compared - def ==(o) - return true if self.equal?(o) - self.class == o.class && - activity == o.activity && - affiliate_oid == o.affiliate_oid && - allow_3rd_party_billing == o.allow_3rd_party_billing && - allow_cod == o.allow_cod && - allow_drop_shipping == o.allow_drop_shipping && - allow_purchase_order == o.allow_purchase_order && - allow_quote_request == o.allow_quote_request && - allow_selection_of_address_type == o.allow_selection_of_address_type && - attachments == o.attachments && - auto_approve_cod == o.auto_approve_cod && - auto_approve_purchase_order == o.auto_approve_purchase_order && - automatic_merchant_notes == o.automatic_merchant_notes && - billing == o.billing && - business_notes == o.business_notes && - cards == o.cards && - cc_emails == o.cc_emails && - customer_profile_oid == o.customer_profile_oid && - dhl_account_number == o.dhl_account_number && - dhl_duty_account_number == o.dhl_duty_account_number && - do_not_send_mail == o.do_not_send_mail && - edi == o.edi && - email == o.email && - exempt_shipping_handling_charge == o.exempt_shipping_handling_charge && - fedex_account_number == o.fedex_account_number && - free_shipping == o.free_shipping && - free_shipping_minimum == o.free_shipping_minimum && - last_modified_by == o.last_modified_by && - last_modified_dts == o.last_modified_dts && - loyalty == o.loyalty && - maximum_item_count == o.maximum_item_count && - merchant_id == o.merchant_id && - minimum_item_count == o.minimum_item_count && - minimum_subtotal == o.minimum_subtotal && - no_coupons == o.no_coupons && - no_free_shipping == o.no_free_shipping && - no_realtime_charge == o.no_realtime_charge && - orders == o.orders && - orders_summary == o.orders_summary && - password == o.password && - pricing_tiers == o.pricing_tiers && - privacy == o.privacy && - properties == o.properties && - qb_class == o.qb_class && - qb_code == o.qb_code && - qb_tax_exemption_reason_code == o.qb_tax_exemption_reason_code && - quotes == o.quotes && - quotes_summary == o.quotes_summary && - referral_source == o.referral_source && - reviewer == o.reviewer && - sales_rep_code == o.sales_rep_code && - send_signup_notification == o.send_signup_notification && - shipping == o.shipping && - signup_dts == o.signup_dts && - software_entitlements == o.software_entitlements && - suppress_buysafe == o.suppress_buysafe && - tags == o.tags && - tax_codes == o.tax_codes && - tax_exempt == o.tax_exempt && - tax_id == o.tax_id && - terms == o.terms && - track_separately == o.track_separately && - unapproved == o.unapproved && - ups_account_number == o.ups_account_number && - website_url == o.website_url - end - - # @see the `==` method - # @param [Object] Object to be compared - def eql?(o) - self == o - end - - # Calculates hash code according to all attributes. - # @return [Fixnum] Hash code - def hash - [activity, affiliate_oid, allow_3rd_party_billing, allow_cod, allow_drop_shipping, allow_purchase_order, allow_quote_request, allow_selection_of_address_type, attachments, auto_approve_cod, auto_approve_purchase_order, automatic_merchant_notes, billing, business_notes, cards, cc_emails, customer_profile_oid, dhl_account_number, dhl_duty_account_number, do_not_send_mail, edi, email, exempt_shipping_handling_charge, fedex_account_number, free_shipping, free_shipping_minimum, last_modified_by, last_modified_dts, loyalty, maximum_item_count, merchant_id, minimum_item_count, minimum_subtotal, no_coupons, no_free_shipping, no_realtime_charge, orders, orders_summary, password, pricing_tiers, privacy, properties, qb_class, qb_code, qb_tax_exemption_reason_code, quotes, quotes_summary, referral_source, reviewer, sales_rep_code, send_signup_notification, shipping, signup_dts, software_entitlements, suppress_buysafe, tags, tax_codes, tax_exempt, tax_id, terms, track_separately, unapproved, ups_account_number, website_url].hash - end - - # Builds the object from hash - # @param [Hash] attributes Model attributes in the form of hash - # @return [Object] Returns the model itself - def build_from_hash(attributes) - return nil unless attributes.is_a?(Hash) - self.class.swagger_types.each_pair do |key, type| - if type =~ /\AArray<(.*)>/i - # check to ensure the input is an array given that the attribute - # is documented as an array but the input is not - if attributes[self.class.attribute_map[key]].is_a?(Array) - self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) }) - end - elsif !attributes[self.class.attribute_map[key]].nil? - self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) - end # or else data not found in attributes(hash), not an issue as the data can be optional - end - - self - end - - # Deserializes the data based on type - # @param string type Data type - # @param string value Value to be deserialized - # @return [Object] Deserialized data - def _deserialize(type, value) - case type.to_sym - when :DateTime - DateTime.parse(value) - when :Date - Date.parse(value) - when :String - value.to_s - when :Integer - value.to_i - when :Float - value.to_f - when :BOOLEAN - if value.to_s =~ /\A(true|t|yes|y|1)\z/i - true - else - false - end - when :Object - # generic object (usually a Hash), return directly - value - when /\AArray<(?<inner_type>.+)>\z/ - inner_type = Regexp.last_match[:inner_type] - value.map { |v| _deserialize(inner_type, v) } - when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/ - k_type = Regexp.last_match[:k_type] - v_type = Regexp.last_match[:v_type] - {}.tap do |hash| - value.each do |k, v| - hash[_deserialize(k_type, k)] = _deserialize(v_type, v) - end - end - else # model - temp_model = UltracartClient.const_get(type).new - temp_model.build_from_hash(value) - end - end - - # Returns the string representation of the object - # @return [String] String presentation of the object - def to_s - to_hash.to_s - end - - # to_body is an alias to to_hash (backward compatibility) - # @return [Hash] Returns the object in the form of hash - def to_body - to_hash - end - - # Returns the object in the form of hash - # @return [Hash] Returns the object in the form of hash - def to_hash - hash = {} - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - next if value.nil? - hash[param] = _to_hash(value) - end - hash - end - - # Outputs non-array value in the form of hash - # For object, use to_hash. Otherwise, just return the value - # @param [Object] value Any valid value - # @return [Hash] Returns the value in the form of hash - def _to_hash(value) - if value.is_a?(Array) - value.compact.map { |v| _to_hash(v) } - elsif value.is_a?(Hash) - {}.tap do |hash| - value.each { |k, v| hash[k] = _to_hash(v) } - end - elsif value.respond_to? :to_hash - value.to_hash - else - value - end - end - - end -end +=begin +#UltraCart Rest API V2 + +#UltraCart REST API Version 2 + +The version of the OpenAPI document: 2.0.0 +Contact: support@ultracart.com +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 6.0.1-SNAPSHOT + +=end + +require 'date' +require 'time' + +module UltracartClient + class Customer + attr_accessor :activity + + # Affiliate oid + attr_accessor :affiliate_oid + + # Allow 3rd party billing + attr_accessor :allow_3rd_party_billing + + # Allow COD + attr_accessor :allow_cod + + # Allow Drop Shipping + attr_accessor :allow_drop_shipping + + # Allow purchase orders by this customer + attr_accessor :allow_purchase_order + + # Allow quote request + attr_accessor :allow_quote_request + + # Allow selection of residential or business address type + attr_accessor :allow_selection_of_address_type + + # Attachments + attr_accessor :attachments + + # Auto approve COD + attr_accessor :auto_approve_cod + + # Auto approve purchase orders by this customer + attr_accessor :auto_approve_purchase_order + + # Automatic merchant notes are added to every order placed + attr_accessor :automatic_merchant_notes + + # Billing addresses for this customer + attr_accessor :billing + + # Business notes (internally visible only) + attr_accessor :business_notes + + # Credit Cards for this customer + attr_accessor :cards + + # Additional emails to CC notification + attr_accessor :cc_emails + + # Customer profile object identifier + attr_accessor :customer_profile_oid + + # DHL account number + attr_accessor :dhl_account_number + + # DHL duty account number + attr_accessor :dhl_duty_account_number + + # Email address of this customer profile + attr_accessor :email + + # Exempt shipping handling charge + attr_accessor :exempt_shipping_handling_charge + + # FedEx account number + attr_accessor :fedex_account_number + + # This customer always receives free shipping + attr_accessor :free_shipping + + # If free_shipping is true, this is the minimum subtotal required for free shipping + attr_accessor :free_shipping_minimum + + # Last modified by + attr_accessor :last_modified_by + + # Last modified date + attr_accessor :last_modified_dts + + attr_accessor :loyalty + + # Maximum item count + attr_accessor :maximum_item_count + + # Minimum item count + attr_accessor :minimum_item_count + + # Minimum subtotal + attr_accessor :minimum_subtotal + + # No coupons + attr_accessor :no_coupons + + # No free shipping regardless of coupons or item level settings + attr_accessor :no_free_shipping + + # No realtime charge + attr_accessor :no_realtime_charge + + # Orders associated with this customer profile + attr_accessor :orders + + attr_accessor :orders_summary + + # Password (may only be set, never read) + attr_accessor :password + + # Pricing tiers for this customer + attr_accessor :pricing_tiers + + attr_accessor :privacy + + # QuickBooks class to import this customer as + attr_accessor :qb_class + + # QuickBooks name to import this customer as + attr_accessor :qb_code + + # Quotes associated with this customer profile + attr_accessor :quotes + + attr_accessor :quotes_summary + + # Referral Source + attr_accessor :referral_source + + attr_accessor :reviewer + + # Sales rep code + attr_accessor :sales_rep_code + + # Send signup notification, if true during customer creation, will send a notification. + attr_accessor :send_signup_notification + + # Shipping addresses for this customer + attr_accessor :shipping + + # Signup date + attr_accessor :signup_dts + + # Software entitlements owned by this customer + attr_accessor :software_entitlements + + # Suppress buySAFE (deprecated) + attr_accessor :suppress_buysafe + + # Tags for this customer + attr_accessor :tags + + attr_accessor :tax_codes + + # True if the customer is tax exempt + attr_accessor :tax_exempt + + # Tax ID + attr_accessor :tax_id + + # Terms for this customer + attr_accessor :terms + + # True if the customer should be tracked separately in QuickBooks + attr_accessor :track_separately + + # Unapproved + attr_accessor :unapproved + + # UPS account number + attr_accessor :ups_account_number + + # Website url + attr_accessor :website_url + + # Attribute mapping from ruby-style variable name to JSON key. + def self.attribute_map + { + :'activity' => :'activity', + :'affiliate_oid' => :'affiliate_oid', + :'allow_3rd_party_billing' => :'allow_3rd_party_billing', + :'allow_cod' => :'allow_cod', + :'allow_drop_shipping' => :'allow_drop_shipping', + :'allow_purchase_order' => :'allow_purchase_order', + :'allow_quote_request' => :'allow_quote_request', + :'allow_selection_of_address_type' => :'allow_selection_of_address_type', + :'attachments' => :'attachments', + :'auto_approve_cod' => :'auto_approve_cod', + :'auto_approve_purchase_order' => :'auto_approve_purchase_order', + :'automatic_merchant_notes' => :'automatic_merchant_notes', + :'billing' => :'billing', + :'business_notes' => :'business_notes', + :'cards' => :'cards', + :'cc_emails' => :'cc_emails', + :'customer_profile_oid' => :'customer_profile_oid', + :'dhl_account_number' => :'dhl_account_number', + :'dhl_duty_account_number' => :'dhl_duty_account_number', + :'email' => :'email', + :'exempt_shipping_handling_charge' => :'exempt_shipping_handling_charge', + :'fedex_account_number' => :'fedex_account_number', + :'free_shipping' => :'free_shipping', + :'free_shipping_minimum' => :'free_shipping_minimum', + :'last_modified_by' => :'last_modified_by', + :'last_modified_dts' => :'last_modified_dts', + :'loyalty' => :'loyalty', + :'maximum_item_count' => :'maximum_item_count', + :'minimum_item_count' => :'minimum_item_count', + :'minimum_subtotal' => :'minimum_subtotal', + :'no_coupons' => :'no_coupons', + :'no_free_shipping' => :'no_free_shipping', + :'no_realtime_charge' => :'no_realtime_charge', + :'orders' => :'orders', + :'orders_summary' => :'orders_summary', + :'password' => :'password', + :'pricing_tiers' => :'pricing_tiers', + :'privacy' => :'privacy', + :'qb_class' => :'qb_class', + :'qb_code' => :'qb_code', + :'quotes' => :'quotes', + :'quotes_summary' => :'quotes_summary', + :'referral_source' => :'referral_source', + :'reviewer' => :'reviewer', + :'sales_rep_code' => :'sales_rep_code', + :'send_signup_notification' => :'send_signup_notification', + :'shipping' => :'shipping', + :'signup_dts' => :'signup_dts', + :'software_entitlements' => :'software_entitlements', + :'suppress_buysafe' => :'suppress_buysafe', + :'tags' => :'tags', + :'tax_codes' => :'tax_codes', + :'tax_exempt' => :'tax_exempt', + :'tax_id' => :'tax_id', + :'terms' => :'terms', + :'track_separately' => :'track_separately', + :'unapproved' => :'unapproved', + :'ups_account_number' => :'ups_account_number', + :'website_url' => :'website_url' + } + end + + # Returns all the JSON keys this model knows about + def self.acceptable_attributes + attribute_map.values + end + + # Attribute type mapping. + def self.openapi_types + { + :'activity' => :'CustomerActivity', + :'affiliate_oid' => :'Integer', + :'allow_3rd_party_billing' => :'Boolean', + :'allow_cod' => :'Boolean', + :'allow_drop_shipping' => :'Boolean', + :'allow_purchase_order' => :'Boolean', + :'allow_quote_request' => :'Boolean', + :'allow_selection_of_address_type' => :'Boolean', + :'attachments' => :'Array<CustomerAttachment>', + :'auto_approve_cod' => :'Boolean', + :'auto_approve_purchase_order' => :'Boolean', + :'automatic_merchant_notes' => :'String', + :'billing' => :'Array<CustomerBilling>', + :'business_notes' => :'String', + :'cards' => :'Array<CustomerCard>', + :'cc_emails' => :'Array<CustomerEmail>', + :'customer_profile_oid' => :'Integer', + :'dhl_account_number' => :'String', + :'dhl_duty_account_number' => :'String', + :'email' => :'String', + :'exempt_shipping_handling_charge' => :'Boolean', + :'fedex_account_number' => :'String', + :'free_shipping' => :'Boolean', + :'free_shipping_minimum' => :'Float', + :'last_modified_by' => :'String', + :'last_modified_dts' => :'String', + :'loyalty' => :'CustomerLoyalty', + :'maximum_item_count' => :'Integer', + :'minimum_item_count' => :'Integer', + :'minimum_subtotal' => :'Float', + :'no_coupons' => :'Boolean', + :'no_free_shipping' => :'Boolean', + :'no_realtime_charge' => :'Boolean', + :'orders' => :'Array<Order>', + :'orders_summary' => :'CustomerOrdersSummary', + :'password' => :'String', + :'pricing_tiers' => :'Array<CustomerPricingTier>', + :'privacy' => :'CustomerPrivacy', + :'qb_class' => :'String', + :'qb_code' => :'String', + :'quotes' => :'Array<Order>', + :'quotes_summary' => :'CustomerQuotesSummary', + :'referral_source' => :'String', + :'reviewer' => :'CustomerReviewer', + :'sales_rep_code' => :'String', + :'send_signup_notification' => :'Boolean', + :'shipping' => :'Array<CustomerShipping>', + :'signup_dts' => :'String', + :'software_entitlements' => :'Array<CustomerSoftwareEntitlement>', + :'suppress_buysafe' => :'Boolean', + :'tags' => :'Array<CustomerTag>', + :'tax_codes' => :'CustomerTaxCodes', + :'tax_exempt' => :'Boolean', + :'tax_id' => :'String', + :'terms' => :'String', + :'track_separately' => :'Boolean', + :'unapproved' => :'Boolean', + :'ups_account_number' => :'String', + :'website_url' => :'String' + } + end + + # List of attributes with nullable: true + def self.openapi_nullable + Set.new([ + ]) + end + + # Initializes the object + # @param [Hash] attributes Model attributes in the form of hash + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::Customer` initialize method" + end + + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::Customer`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect + end + h[k.to_sym] = v + } + + if attributes.key?(:'activity') + self.activity = attributes[:'activity'] + end + + if attributes.key?(:'affiliate_oid') + self.affiliate_oid = attributes[:'affiliate_oid'] + end + + if attributes.key?(:'allow_3rd_party_billing') + self.allow_3rd_party_billing = attributes[:'allow_3rd_party_billing'] + end + + if attributes.key?(:'allow_cod') + self.allow_cod = attributes[:'allow_cod'] + end + + if attributes.key?(:'allow_drop_shipping') + self.allow_drop_shipping = attributes[:'allow_drop_shipping'] + end + + if attributes.key?(:'allow_purchase_order') + self.allow_purchase_order = attributes[:'allow_purchase_order'] + end + + if attributes.key?(:'allow_quote_request') + self.allow_quote_request = attributes[:'allow_quote_request'] + end + + if attributes.key?(:'allow_selection_of_address_type') + self.allow_selection_of_address_type = attributes[:'allow_selection_of_address_type'] + end + + if attributes.key?(:'attachments') + if (value = attributes[:'attachments']).is_a?(Array) + self.attachments = value + end + end + + if attributes.key?(:'auto_approve_cod') + self.auto_approve_cod = attributes[:'auto_approve_cod'] + end + + if attributes.key?(:'auto_approve_purchase_order') + self.auto_approve_purchase_order = attributes[:'auto_approve_purchase_order'] + end + + if attributes.key?(:'automatic_merchant_notes') + self.automatic_merchant_notes = attributes[:'automatic_merchant_notes'] + end + + if attributes.key?(:'billing') + if (value = attributes[:'billing']).is_a?(Array) + self.billing = value + end + end + + if attributes.key?(:'business_notes') + self.business_notes = attributes[:'business_notes'] + end + + if attributes.key?(:'cards') + if (value = attributes[:'cards']).is_a?(Array) + self.cards = value + end + end + + if attributes.key?(:'cc_emails') + if (value = attributes[:'cc_emails']).is_a?(Array) + self.cc_emails = value + end + end + + if attributes.key?(:'customer_profile_oid') + self.customer_profile_oid = attributes[:'customer_profile_oid'] + end + + if attributes.key?(:'dhl_account_number') + self.dhl_account_number = attributes[:'dhl_account_number'] + end + + if attributes.key?(:'dhl_duty_account_number') + self.dhl_duty_account_number = attributes[:'dhl_duty_account_number'] + end + + if attributes.key?(:'email') + self.email = attributes[:'email'] + end + + if attributes.key?(:'exempt_shipping_handling_charge') + self.exempt_shipping_handling_charge = attributes[:'exempt_shipping_handling_charge'] + end + + if attributes.key?(:'fedex_account_number') + self.fedex_account_number = attributes[:'fedex_account_number'] + end + + if attributes.key?(:'free_shipping') + self.free_shipping = attributes[:'free_shipping'] + end + + if attributes.key?(:'free_shipping_minimum') + self.free_shipping_minimum = attributes[:'free_shipping_minimum'] + end + + if attributes.key?(:'last_modified_by') + self.last_modified_by = attributes[:'last_modified_by'] + end + + if attributes.key?(:'last_modified_dts') + self.last_modified_dts = attributes[:'last_modified_dts'] + end + + if attributes.key?(:'loyalty') + self.loyalty = attributes[:'loyalty'] + end + + if attributes.key?(:'maximum_item_count') + self.maximum_item_count = attributes[:'maximum_item_count'] + end + + if attributes.key?(:'minimum_item_count') + self.minimum_item_count = attributes[:'minimum_item_count'] + end + + if attributes.key?(:'minimum_subtotal') + self.minimum_subtotal = attributes[:'minimum_subtotal'] + end + + if attributes.key?(:'no_coupons') + self.no_coupons = attributes[:'no_coupons'] + end + + if attributes.key?(:'no_free_shipping') + self.no_free_shipping = attributes[:'no_free_shipping'] + end + + if attributes.key?(:'no_realtime_charge') + self.no_realtime_charge = attributes[:'no_realtime_charge'] + end + + if attributes.key?(:'orders') + if (value = attributes[:'orders']).is_a?(Array) + self.orders = value + end + end + + if attributes.key?(:'orders_summary') + self.orders_summary = attributes[:'orders_summary'] + end + + if attributes.key?(:'password') + self.password = attributes[:'password'] + end + + if attributes.key?(:'pricing_tiers') + if (value = attributes[:'pricing_tiers']).is_a?(Array) + self.pricing_tiers = value + end + end + + if attributes.key?(:'privacy') + self.privacy = attributes[:'privacy'] + end + + if attributes.key?(:'qb_class') + self.qb_class = attributes[:'qb_class'] + end + + if attributes.key?(:'qb_code') + self.qb_code = attributes[:'qb_code'] + end + + if attributes.key?(:'quotes') + if (value = attributes[:'quotes']).is_a?(Array) + self.quotes = value + end + end + + if attributes.key?(:'quotes_summary') + self.quotes_summary = attributes[:'quotes_summary'] + end + + if attributes.key?(:'referral_source') + self.referral_source = attributes[:'referral_source'] + end + + if attributes.key?(:'reviewer') + self.reviewer = attributes[:'reviewer'] + end + + if attributes.key?(:'sales_rep_code') + self.sales_rep_code = attributes[:'sales_rep_code'] + end + + if attributes.key?(:'send_signup_notification') + self.send_signup_notification = attributes[:'send_signup_notification'] + end + + if attributes.key?(:'shipping') + if (value = attributes[:'shipping']).is_a?(Array) + self.shipping = value + end + end + + if attributes.key?(:'signup_dts') + self.signup_dts = attributes[:'signup_dts'] + end + + if attributes.key?(:'software_entitlements') + if (value = attributes[:'software_entitlements']).is_a?(Array) + self.software_entitlements = value + end + end + + if attributes.key?(:'suppress_buysafe') + self.suppress_buysafe = attributes[:'suppress_buysafe'] + end + + if attributes.key?(:'tags') + if (value = attributes[:'tags']).is_a?(Array) + self.tags = value + end + end + + if attributes.key?(:'tax_codes') + self.tax_codes = attributes[:'tax_codes'] + end + + if attributes.key?(:'tax_exempt') + self.tax_exempt = attributes[:'tax_exempt'] + end + + if attributes.key?(:'tax_id') + self.tax_id = attributes[:'tax_id'] + end + + if attributes.key?(:'terms') + self.terms = attributes[:'terms'] + end + + if attributes.key?(:'track_separately') + self.track_separately = attributes[:'track_separately'] + end + + if attributes.key?(:'unapproved') + self.unapproved = attributes[:'unapproved'] + end + + if attributes.key?(:'ups_account_number') + self.ups_account_number = attributes[:'ups_account_number'] + end + + if attributes.key?(:'website_url') + self.website_url = attributes[:'website_url'] + end + end + + # Show invalid properties with the reasons. Usually used together with valid? + # @return Array for valid properties with the reasons + def list_invalid_properties + invalid_properties = Array.new + if !@business_notes.nil? && @business_notes.to_s.length > 2000 + invalid_properties.push('invalid value for "business_notes", the character length must be smaller than or equal to 2000.') + end + + if !@dhl_account_number.nil? && @dhl_account_number.to_s.length > 20 + invalid_properties.push('invalid value for "dhl_account_number", the character length must be smaller than or equal to 20.') + end + + if !@dhl_duty_account_number.nil? && @dhl_duty_account_number.to_s.length > 20 + invalid_properties.push('invalid value for "dhl_duty_account_number", the character length must be smaller than or equal to 20.') + end + + if !@fedex_account_number.nil? && @fedex_account_number.to_s.length > 20 + invalid_properties.push('invalid value for "fedex_account_number", the character length must be smaller than or equal to 20.') + end + + if !@last_modified_by.nil? && @last_modified_by.to_s.length > 100 + invalid_properties.push('invalid value for "last_modified_by", the character length must be smaller than or equal to 100.') + end + + if !@password.nil? && @password.to_s.length > 30 + invalid_properties.push('invalid value for "password", the character length must be smaller than or equal to 30.') + end + + if !@referral_source.nil? && @referral_source.to_s.length > 50 + invalid_properties.push('invalid value for "referral_source", the character length must be smaller than or equal to 50.') + end + + if !@sales_rep_code.nil? && @sales_rep_code.to_s.length > 10 + invalid_properties.push('invalid value for "sales_rep_code", the character length must be smaller than or equal to 10.') + end + + if !@tax_id.nil? && @tax_id.to_s.length > 15 + invalid_properties.push('invalid value for "tax_id", the character length must be smaller than or equal to 15.') + end + + if !@ups_account_number.nil? && @ups_account_number.to_s.length > 20 + invalid_properties.push('invalid value for "ups_account_number", the character length must be smaller than or equal to 20.') + end + + if !@website_url.nil? && @website_url.to_s.length > 100 + invalid_properties.push('invalid value for "website_url", the character length must be smaller than or equal to 100.') + end + + invalid_properties + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + def valid? + return false if !@business_notes.nil? && @business_notes.to_s.length > 2000 + return false if !@dhl_account_number.nil? && @dhl_account_number.to_s.length > 20 + return false if !@dhl_duty_account_number.nil? && @dhl_duty_account_number.to_s.length > 20 + return false if !@fedex_account_number.nil? && @fedex_account_number.to_s.length > 20 + return false if !@last_modified_by.nil? && @last_modified_by.to_s.length > 100 + return false if !@password.nil? && @password.to_s.length > 30 + return false if !@referral_source.nil? && @referral_source.to_s.length > 50 + return false if !@sales_rep_code.nil? && @sales_rep_code.to_s.length > 10 + return false if !@tax_id.nil? && @tax_id.to_s.length > 15 + return false if !@ups_account_number.nil? && @ups_account_number.to_s.length > 20 + return false if !@website_url.nil? && @website_url.to_s.length > 100 + true + end + + # Custom attribute writer method with validation + # @param [Object] business_notes Value to be assigned + def business_notes=(business_notes) + if !business_notes.nil? && business_notes.to_s.length > 2000 + fail ArgumentError, 'invalid value for "business_notes", the character length must be smaller than or equal to 2000.' + end + + @business_notes = business_notes + end + + # Custom attribute writer method with validation + # @param [Object] dhl_account_number Value to be assigned + def dhl_account_number=(dhl_account_number) + if !dhl_account_number.nil? && dhl_account_number.to_s.length > 20 + fail ArgumentError, 'invalid value for "dhl_account_number", the character length must be smaller than or equal to 20.' + end + + @dhl_account_number = dhl_account_number + end + + # Custom attribute writer method with validation + # @param [Object] dhl_duty_account_number Value to be assigned + def dhl_duty_account_number=(dhl_duty_account_number) + if !dhl_duty_account_number.nil? && dhl_duty_account_number.to_s.length > 20 + fail ArgumentError, 'invalid value for "dhl_duty_account_number", the character length must be smaller than or equal to 20.' + end + + @dhl_duty_account_number = dhl_duty_account_number + end + + # Custom attribute writer method with validation + # @param [Object] fedex_account_number Value to be assigned + def fedex_account_number=(fedex_account_number) + if !fedex_account_number.nil? && fedex_account_number.to_s.length > 20 + fail ArgumentError, 'invalid value for "fedex_account_number", the character length must be smaller than or equal to 20.' + end + + @fedex_account_number = fedex_account_number + end + + # Custom attribute writer method with validation + # @param [Object] last_modified_by Value to be assigned + def last_modified_by=(last_modified_by) + if !last_modified_by.nil? && last_modified_by.to_s.length > 100 + fail ArgumentError, 'invalid value for "last_modified_by", the character length must be smaller than or equal to 100.' + end + + @last_modified_by = last_modified_by + end + + # Custom attribute writer method with validation + # @param [Object] password Value to be assigned + def password=(password) + if !password.nil? && password.to_s.length > 30 + fail ArgumentError, 'invalid value for "password", the character length must be smaller than or equal to 30.' + end + + @password = password + end + + # Custom attribute writer method with validation + # @param [Object] referral_source Value to be assigned + def referral_source=(referral_source) + if !referral_source.nil? && referral_source.to_s.length > 50 + fail ArgumentError, 'invalid value for "referral_source", the character length must be smaller than or equal to 50.' + end + + @referral_source = referral_source + end + + # Custom attribute writer method with validation + # @param [Object] sales_rep_code Value to be assigned + def sales_rep_code=(sales_rep_code) + if !sales_rep_code.nil? && sales_rep_code.to_s.length > 10 + fail ArgumentError, 'invalid value for "sales_rep_code", the character length must be smaller than or equal to 10.' + end + + @sales_rep_code = sales_rep_code + end + + # Custom attribute writer method with validation + # @param [Object] tax_id Value to be assigned + def tax_id=(tax_id) + if !tax_id.nil? && tax_id.to_s.length > 15 + fail ArgumentError, 'invalid value for "tax_id", the character length must be smaller than or equal to 15.' + end + + @tax_id = tax_id + end + + # Custom attribute writer method with validation + # @param [Object] ups_account_number Value to be assigned + def ups_account_number=(ups_account_number) + if !ups_account_number.nil? && ups_account_number.to_s.length > 20 + fail ArgumentError, 'invalid value for "ups_account_number", the character length must be smaller than or equal to 20.' + end + + @ups_account_number = ups_account_number + end + + # Custom attribute writer method with validation + # @param [Object] website_url Value to be assigned + def website_url=(website_url) + if !website_url.nil? && website_url.to_s.length > 100 + fail ArgumentError, 'invalid value for "website_url", the character length must be smaller than or equal to 100.' + end + + @website_url = website_url + end + + # Checks equality by comparing each attribute. + # @param [Object] Object to be compared + def ==(o) + return true if self.equal?(o) + self.class == o.class && + activity == o.activity && + affiliate_oid == o.affiliate_oid && + allow_3rd_party_billing == o.allow_3rd_party_billing && + allow_cod == o.allow_cod && + allow_drop_shipping == o.allow_drop_shipping && + allow_purchase_order == o.allow_purchase_order && + allow_quote_request == o.allow_quote_request && + allow_selection_of_address_type == o.allow_selection_of_address_type && + attachments == o.attachments && + auto_approve_cod == o.auto_approve_cod && + auto_approve_purchase_order == o.auto_approve_purchase_order && + automatic_merchant_notes == o.automatic_merchant_notes && + billing == o.billing && + business_notes == o.business_notes && + cards == o.cards && + cc_emails == o.cc_emails && + customer_profile_oid == o.customer_profile_oid && + dhl_account_number == o.dhl_account_number && + dhl_duty_account_number == o.dhl_duty_account_number && + email == o.email && + exempt_shipping_handling_charge == o.exempt_shipping_handling_charge && + fedex_account_number == o.fedex_account_number && + free_shipping == o.free_shipping && + free_shipping_minimum == o.free_shipping_minimum && + last_modified_by == o.last_modified_by && + last_modified_dts == o.last_modified_dts && + loyalty == o.loyalty && + maximum_item_count == o.maximum_item_count && + minimum_item_count == o.minimum_item_count && + minimum_subtotal == o.minimum_subtotal && + no_coupons == o.no_coupons && + no_free_shipping == o.no_free_shipping && + no_realtime_charge == o.no_realtime_charge && + orders == o.orders && + orders_summary == o.orders_summary && + password == o.password && + pricing_tiers == o.pricing_tiers && + privacy == o.privacy && + qb_class == o.qb_class && + qb_code == o.qb_code && + quotes == o.quotes && + quotes_summary == o.quotes_summary && + referral_source == o.referral_source && + reviewer == o.reviewer && + sales_rep_code == o.sales_rep_code && + send_signup_notification == o.send_signup_notification && + shipping == o.shipping && + signup_dts == o.signup_dts && + software_entitlements == o.software_entitlements && + suppress_buysafe == o.suppress_buysafe && + tags == o.tags && + tax_codes == o.tax_codes && + tax_exempt == o.tax_exempt && + tax_id == o.tax_id && + terms == o.terms && + track_separately == o.track_separately && + unapproved == o.unapproved && + ups_account_number == o.ups_account_number && + website_url == o.website_url + end + + # @see the `==` method + # @param [Object] Object to be compared + def eql?(o) + self == o + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + def hash + [activity, affiliate_oid, allow_3rd_party_billing, allow_cod, allow_drop_shipping, allow_purchase_order, allow_quote_request, allow_selection_of_address_type, attachments, auto_approve_cod, auto_approve_purchase_order, automatic_merchant_notes, billing, business_notes, cards, cc_emails, customer_profile_oid, dhl_account_number, dhl_duty_account_number, email, exempt_shipping_handling_charge, fedex_account_number, free_shipping, free_shipping_minimum, last_modified_by, last_modified_dts, loyalty, maximum_item_count, minimum_item_count, minimum_subtotal, no_coupons, no_free_shipping, no_realtime_charge, orders, orders_summary, password, pricing_tiers, privacy, qb_class, qb_code, quotes, quotes_summary, referral_source, reviewer, sales_rep_code, send_signup_notification, shipping, signup_dts, software_entitlements, suppress_buysafe, tags, tax_codes, tax_exempt, tax_id, terms, track_separately, unapproved, ups_account_number, website_url].hash + end + + # Builds the object from hash + # @param [Hash] attributes Model attributes in the form of hash + # @return [Object] Returns the model itself + def self.build_from_hash(attributes) + new.build_from_hash(attributes) + end + + # Builds the object from hash + # @param [Hash] attributes Model attributes in the form of hash + # @return [Object] Returns the model itself + def build_from_hash(attributes) + return nil unless attributes.is_a?(Hash) + attributes = attributes.transform_keys(&:to_sym) + self.class.openapi_types.each_pair do |key, type| + if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key) + self.send("#{key}=", nil) + elsif type =~ /\AArray<(.*)>/i + # check to ensure the input is an array given that the attribute + # is documented as an array but the input is not + if attributes[self.class.attribute_map[key]].is_a?(Array) + self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) }) + end + elsif !attributes[self.class.attribute_map[key]].nil? + self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) + end + end + + self + end + + # Deserializes the data based on type + # @param string type Data type + # @param string value Value to be deserialized + # @return [Object] Deserialized data + def _deserialize(type, value) + case type.to_sym + when :Time + Time.parse(value) + when :Date + Date.parse(value) + when :String + value.to_s + when :Integer + value.to_i + when :Float + value.to_f + when :Boolean + if value.to_s =~ /\A(true|t|yes|y|1)\z/i + true + else + false + end + when :Object + # generic object (usually a Hash), return directly + value + when /\AArray<(?<inner_type>.+)>\z/ + inner_type = Regexp.last_match[:inner_type] + value.map { |v| _deserialize(inner_type, v) } + when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/ + k_type = Regexp.last_match[:k_type] + v_type = Regexp.last_match[:v_type] + {}.tap do |hash| + value.each do |k, v| + hash[_deserialize(k_type, k)] = _deserialize(v_type, v) + end + end + else # model + # models (e.g. Pet) or oneOf + klass = UltracartClient.const_get(type) + klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value) + end + end + + # Returns the string representation of the object + # @return [String] String presentation of the object + def to_s + to_hash.to_s + end + + # to_body is an alias to to_hash (backward compatibility) + # @return [Hash] Returns the object in the form of hash + def to_body + to_hash + end + + # Returns the object in the form of hash + # @return [Hash] Returns the object in the form of hash + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + hash + end + + # Outputs non-array value in the form of hash + # For object, use to_hash. Otherwise, just return the value + # @param [Object] value Any valid value + # @return [Hash] Returns the value in the form of hash + def _to_hash(value) + if value.is_a?(Array) + value.compact.map { |v| _to_hash(v) } + elsif value.is_a?(Hash) + {}.tap do |hash| + value.each { |k, v| hash[k] = _to_hash(v) } + end + elsif value.respond_to? :to_hash + value.to_hash + else + value + end + end + + end + +end