Class: AdvancedBilling::AllocateComponents

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/advanced_billing/models/allocate_components.rb

Overview

AllocateComponents Model.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#to_hash, #to_json

Constructor Details

#initialize(proration_upgrade_scheme: SKIP, proration_downgrade_scheme: SKIP, allocations: SKIP, accrue_charge: SKIP, upgrade_charge: SKIP, downgrade_credit: SKIP, payment_collection_method: SKIP, initiate_dunning: SKIP, additional_properties: {}) ⇒ AllocateComponents

Returns a new instance of AllocateComponents.



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/advanced_billing/models/allocate_components.rb', line 87

def initialize(proration_upgrade_scheme: SKIP,
               proration_downgrade_scheme: SKIP, allocations: SKIP,
               accrue_charge: SKIP, upgrade_charge: SKIP,
               downgrade_credit: SKIP, payment_collection_method: SKIP,
               initiate_dunning: SKIP, additional_properties: {})
  @proration_upgrade_scheme = proration_upgrade_scheme unless proration_upgrade_scheme == SKIP
  unless proration_downgrade_scheme == SKIP
    @proration_downgrade_scheme =
      proration_downgrade_scheme
  end
  @allocations = allocations unless allocations == SKIP
  @accrue_charge = accrue_charge unless accrue_charge == SKIP
  @upgrade_charge = upgrade_charge unless upgrade_charge == SKIP
  @downgrade_credit = downgrade_credit unless downgrade_credit == SKIP
  unless payment_collection_method == SKIP
    @payment_collection_method =
      payment_collection_method
  end
  @initiate_dunning = initiate_dunning unless initiate_dunning == SKIP

  # Add additional model properties to the instance.
  additional_properties.each do |_name, _value|
    instance_variable_set("@#{_name}", _value)
  end
end

Instance Attribute Details

#accrue_chargeTrueClass | FalseClass

TODO: Write general description for this method

Returns:

  • (TrueClass | FalseClass)


26
27
28
# File 'lib/advanced_billing/models/allocate_components.rb', line 26

def accrue_charge
  @accrue_charge
end

#allocationsArray[CreateAllocation]

TODO: Write general description for this method

Returns:



22
23
24
# File 'lib/advanced_billing/models/allocate_components.rb', line 22

def allocations
  @allocations
end

#downgrade_creditCreditType

The type of credit to be created when upgrading/downgrading. Defaults to the component and then site setting if one is not provided. Available values: ‘full`, `prorated`, `none`.

Returns:



38
39
40
# File 'lib/advanced_billing/models/allocate_components.rb', line 38

def downgrade_credit
  @downgrade_credit
end

#initiate_dunningTrueClass | FalseClass

If true, if the immediate component payment fails, initiate dunning for the subscription. Otherwise, leave the charges on the subscription to pay for at renewal.

Returns:

  • (TrueClass | FalseClass)


49
50
51
# File 'lib/advanced_billing/models/allocate_components.rb', line 49

def initiate_dunning
  @initiate_dunning
end

#payment_collection_methodCollectionMethod

(Optional) If not passed, the allocation(s) will use the payment collection method on the subscription

Returns:



43
44
45
# File 'lib/advanced_billing/models/allocate_components.rb', line 43

def payment_collection_method
  @payment_collection_method
end

#proration_downgrade_schemeString

TODO: Write general description for this method

Returns:

  • (String)


18
19
20
# File 'lib/advanced_billing/models/allocate_components.rb', line 18

def proration_downgrade_scheme
  @proration_downgrade_scheme
end

#proration_upgrade_schemeString

TODO: Write general description for this method

Returns:

  • (String)


14
15
16
# File 'lib/advanced_billing/models/allocate_components.rb', line 14

def proration_upgrade_scheme
  @proration_upgrade_scheme
end

#upgrade_chargeCreditType

The type of credit to be created when upgrading/downgrading. Defaults to the component and then site setting if one is not provided. Available values: ‘full`, `prorated`, `none`.

Returns:



32
33
34
# File 'lib/advanced_billing/models/allocate_components.rb', line 32

def upgrade_charge
  @upgrade_charge
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/advanced_billing/models/allocate_components.rb', line 114

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  proration_upgrade_scheme =
    hash.key?('proration_upgrade_scheme') ? hash['proration_upgrade_scheme'] : SKIP
  proration_downgrade_scheme =
    hash.key?('proration_downgrade_scheme') ? hash['proration_downgrade_scheme'] : SKIP
  # Parameter is an array, so we need to iterate through it
  allocations = nil
  unless hash['allocations'].nil?
    allocations = []
    hash['allocations'].each do |structure|
      allocations << (CreateAllocation.from_hash(structure) if structure)
    end
  end

  allocations = SKIP unless hash.key?('allocations')
  accrue_charge = hash.key?('accrue_charge') ? hash['accrue_charge'] : SKIP
  upgrade_charge =
    hash.key?('upgrade_charge') ? hash['upgrade_charge'] : SKIP
  downgrade_credit =
    hash.key?('downgrade_credit') ? hash['downgrade_credit'] : SKIP
  payment_collection_method =
    hash.key?('payment_collection_method') ? hash['payment_collection_method'] : SKIP
  initiate_dunning =
    hash.key?('initiate_dunning') ? hash['initiate_dunning'] : SKIP

  # Clean out expected properties from Hash.
  names.each_value { |k| hash.delete(k) }

  # Create object from extracted values.
  AllocateComponents.new(proration_upgrade_scheme: proration_upgrade_scheme,
                         proration_downgrade_scheme: proration_downgrade_scheme,
                         allocations: allocations,
                         accrue_charge: accrue_charge,
                         upgrade_charge: upgrade_charge,
                         downgrade_credit: downgrade_credit,
                         payment_collection_method: payment_collection_method,
                         initiate_dunning: initiate_dunning,
                         additional_properties: hash)
end

.namesObject

A mapping from model property names to API property names.



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/advanced_billing/models/allocate_components.rb', line 52

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['proration_upgrade_scheme'] = 'proration_upgrade_scheme'
  @_hash['proration_downgrade_scheme'] = 'proration_downgrade_scheme'
  @_hash['allocations'] = 'allocations'
  @_hash['accrue_charge'] = 'accrue_charge'
  @_hash['upgrade_charge'] = 'upgrade_charge'
  @_hash['downgrade_credit'] = 'downgrade_credit'
  @_hash['payment_collection_method'] = 'payment_collection_method'
  @_hash['initiate_dunning'] = 'initiate_dunning'
  @_hash
end

.nullablesObject

An array for nullable fields



80
81
82
83
84
85
# File 'lib/advanced_billing/models/allocate_components.rb', line 80

def self.nullables
  %w[
    upgrade_charge
    downgrade_credit
  ]
end

.optionalsObject

An array for optional fields



66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/advanced_billing/models/allocate_components.rb', line 66

def self.optionals
  %w[
    proration_upgrade_scheme
    proration_downgrade_scheme
    allocations
    accrue_charge
    upgrade_charge
    downgrade_credit
    payment_collection_method
    initiate_dunning
  ]
end