tremendous_ruby 5.7.0 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,358 @@
1
+ =begin
2
+ #API Endpoints
3
+
4
+ #Deliver monetary rewards and incentives to employees, customers, survey participants, and more through the Tremendous API. For organizational tasks, like managing your organization and it's members within Tremendous, please see the Tremendous Organizational API.
5
+
6
+ The version of the OpenAPI document: 2
7
+ Contact: developers@tremendous.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.8.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Tremendous
17
+ class ListBalanceTransactions200ResponseTransactionsInnerOrderPayment
18
+ # Total price of the order before fees (in USD)
19
+ attr_accessor :subtotal
20
+
21
+ # Total price of the order including fees (in USD)
22
+ attr_accessor :total
23
+
24
+ # Fees for the order (in USD)
25
+ attr_accessor :fees
26
+
27
+ # Discount for the order (in USD)
28
+ attr_accessor :discount
29
+
30
+ attr_accessor :refund
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+ :'subtotal' => :'subtotal',
36
+ :'total' => :'total',
37
+ :'fees' => :'fees',
38
+ :'discount' => :'discount',
39
+ :'refund' => :'refund'
40
+ }
41
+ end
42
+
43
+ # Returns all the JSON keys this model knows about
44
+ def self.acceptable_attributes
45
+ attribute_map.values
46
+ end
47
+
48
+ # Attribute type mapping.
49
+ def self.openapi_types
50
+ {
51
+ :'subtotal' => :'Float',
52
+ :'total' => :'Float',
53
+ :'fees' => :'Float',
54
+ :'discount' => :'Float',
55
+ :'refund' => :'ListOrders200ResponseOrdersInnerPaymentRefund'
56
+ }
57
+ end
58
+
59
+ # List of attributes with nullable: true
60
+ def self.openapi_nullable
61
+ Set.new([
62
+ ])
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param [Hash] attributes Model attributes in the form of hash
67
+ def initialize(attributes = {})
68
+ if (!attributes.is_a?(Hash))
69
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Tremendous::ListBalanceTransactions200ResponseTransactionsInnerOrderPayment` initialize method"
70
+ end
71
+
72
+ # check to see if the attribute exists and convert string to symbol for hash key
73
+ attributes = attributes.each_with_object({}) { |(k, v), h|
74
+ if (!self.class.attribute_map.key?(k.to_sym))
75
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Tremendous::ListBalanceTransactions200ResponseTransactionsInnerOrderPayment`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
76
+ end
77
+ h[k.to_sym] = v
78
+ }
79
+
80
+ if attributes.key?(:'subtotal')
81
+ self.subtotal = attributes[:'subtotal']
82
+ else
83
+ self.subtotal = nil
84
+ end
85
+
86
+ if attributes.key?(:'total')
87
+ self.total = attributes[:'total']
88
+ else
89
+ self.total = nil
90
+ end
91
+
92
+ if attributes.key?(:'fees')
93
+ self.fees = attributes[:'fees']
94
+ else
95
+ self.fees = nil
96
+ end
97
+
98
+ if attributes.key?(:'discount')
99
+ self.discount = attributes[:'discount']
100
+ else
101
+ self.discount = nil
102
+ end
103
+
104
+ if attributes.key?(:'refund')
105
+ self.refund = attributes[:'refund']
106
+ end
107
+ end
108
+
109
+ # Show invalid properties with the reasons. Usually used together with valid?
110
+ # @return Array for valid properties with the reasons
111
+ def list_invalid_properties
112
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
113
+ invalid_properties = Array.new
114
+ if @subtotal.nil?
115
+ invalid_properties.push('invalid value for "subtotal", subtotal cannot be nil.')
116
+ end
117
+
118
+ if @subtotal < 0
119
+ invalid_properties.push('invalid value for "subtotal", must be greater than or equal to 0.')
120
+ end
121
+
122
+ if @total.nil?
123
+ invalid_properties.push('invalid value for "total", total cannot be nil.')
124
+ end
125
+
126
+ if @total < 0
127
+ invalid_properties.push('invalid value for "total", must be greater than or equal to 0.')
128
+ end
129
+
130
+ if @fees.nil?
131
+ invalid_properties.push('invalid value for "fees", fees cannot be nil.')
132
+ end
133
+
134
+ if @fees < 0
135
+ invalid_properties.push('invalid value for "fees", must be greater than or equal to 0.')
136
+ end
137
+
138
+ if @discount.nil?
139
+ invalid_properties.push('invalid value for "discount", discount cannot be nil.')
140
+ end
141
+
142
+ if @discount < 0
143
+ invalid_properties.push('invalid value for "discount", must be greater than or equal to 0.')
144
+ end
145
+
146
+ invalid_properties
147
+ end
148
+
149
+ # Check to see if the all the properties in the model are valid
150
+ # @return true if the model is valid
151
+ def valid?
152
+ warn '[DEPRECATED] the `valid?` method is obsolete'
153
+ return false if @subtotal.nil?
154
+ return false if @subtotal < 0
155
+ return false if @total.nil?
156
+ return false if @total < 0
157
+ return false if @fees.nil?
158
+ return false if @fees < 0
159
+ return false if @discount.nil?
160
+ return false if @discount < 0
161
+ true
162
+ end
163
+
164
+ # Custom attribute writer method with validation
165
+ # @param [Object] subtotal Value to be assigned
166
+ def subtotal=(subtotal)
167
+ if subtotal.nil?
168
+ fail ArgumentError, 'subtotal cannot be nil'
169
+ end
170
+
171
+ if subtotal < 0
172
+ fail ArgumentError, 'invalid value for "subtotal", must be greater than or equal to 0.'
173
+ end
174
+
175
+ @subtotal = subtotal
176
+ end
177
+
178
+ # Custom attribute writer method with validation
179
+ # @param [Object] total Value to be assigned
180
+ def total=(total)
181
+ if total.nil?
182
+ fail ArgumentError, 'total cannot be nil'
183
+ end
184
+
185
+ if total < 0
186
+ fail ArgumentError, 'invalid value for "total", must be greater than or equal to 0.'
187
+ end
188
+
189
+ @total = total
190
+ end
191
+
192
+ # Custom attribute writer method with validation
193
+ # @param [Object] fees Value to be assigned
194
+ def fees=(fees)
195
+ if fees.nil?
196
+ fail ArgumentError, 'fees cannot be nil'
197
+ end
198
+
199
+ if fees < 0
200
+ fail ArgumentError, 'invalid value for "fees", must be greater than or equal to 0.'
201
+ end
202
+
203
+ @fees = fees
204
+ end
205
+
206
+ # Custom attribute writer method with validation
207
+ # @param [Object] discount Value to be assigned
208
+ def discount=(discount)
209
+ if discount.nil?
210
+ fail ArgumentError, 'discount cannot be nil'
211
+ end
212
+
213
+ if discount < 0
214
+ fail ArgumentError, 'invalid value for "discount", must be greater than or equal to 0.'
215
+ end
216
+
217
+ @discount = discount
218
+ end
219
+
220
+ # Checks equality by comparing each attribute.
221
+ # @param [Object] Object to be compared
222
+ def ==(o)
223
+ return true if self.equal?(o)
224
+ self.class == o.class &&
225
+ subtotal == o.subtotal &&
226
+ total == o.total &&
227
+ fees == o.fees &&
228
+ discount == o.discount &&
229
+ refund == o.refund
230
+ end
231
+
232
+ # @see the `==` method
233
+ # @param [Object] Object to be compared
234
+ def eql?(o)
235
+ self == o
236
+ end
237
+
238
+ # Calculates hash code according to all attributes.
239
+ # @return [Integer] Hash code
240
+ def hash
241
+ [subtotal, total, fees, discount, refund].hash
242
+ end
243
+
244
+ # Builds the object from hash
245
+ # @param [Hash] attributes Model attributes in the form of hash
246
+ # @return [Object] Returns the model itself
247
+ def self.build_from_hash(attributes)
248
+ return nil unless attributes.is_a?(Hash)
249
+ attributes = attributes.transform_keys(&:to_sym)
250
+ transformed_hash = {}
251
+ openapi_types.each_pair do |key, type|
252
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
253
+ transformed_hash["#{key}"] = nil
254
+ elsif type =~ /\AArray<(.*)>/i
255
+ # check to ensure the input is an array given that the attribute
256
+ # is documented as an array but the input is not
257
+ if attributes[attribute_map[key]].is_a?(Array)
258
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
259
+ end
260
+ elsif !attributes[attribute_map[key]].nil?
261
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
262
+ end
263
+ end
264
+ new(transformed_hash)
265
+ end
266
+
267
+ # Deserializes the data based on type
268
+ # @param string type Data type
269
+ # @param string value Value to be deserialized
270
+ # @return [Object] Deserialized data
271
+ def self._deserialize(type, value)
272
+ case type.to_sym
273
+ when :Time
274
+ Time.parse(value)
275
+ when :Date
276
+ Date.parse(value)
277
+ when :String
278
+ value.to_s
279
+ when :Integer
280
+ value.to_i
281
+ when :Float
282
+ value.to_f
283
+ when :Boolean
284
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
285
+ true
286
+ else
287
+ false
288
+ end
289
+ when :Object
290
+ # generic object (usually a Hash), return directly
291
+ value
292
+ when /\AArray<(?<inner_type>.+)>\z/
293
+ inner_type = Regexp.last_match[:inner_type]
294
+ value.map { |v| _deserialize(inner_type, v) }
295
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
296
+ k_type = Regexp.last_match[:k_type]
297
+ v_type = Regexp.last_match[:v_type]
298
+ {}.tap do |hash|
299
+ value.each do |k, v|
300
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
301
+ end
302
+ end
303
+ else # model
304
+ # models (e.g. Pet) or oneOf
305
+ klass = Tremendous.const_get(type)
306
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
307
+ end
308
+ end
309
+
310
+ # Returns the string representation of the object
311
+ # @return [String] String presentation of the object
312
+ def to_s
313
+ to_hash.to_s
314
+ end
315
+
316
+ # to_body is an alias to to_hash (backward compatibility)
317
+ # @return [Hash] Returns the object in the form of hash
318
+ def to_body
319
+ to_hash
320
+ end
321
+
322
+ # Returns the object in the form of hash
323
+ # @return [Hash] Returns the object in the form of hash
324
+ def to_hash
325
+ hash = {}
326
+ self.class.attribute_map.each_pair do |attr, param|
327
+ value = self.send(attr)
328
+ if value.nil?
329
+ is_nullable = self.class.openapi_nullable.include?(attr)
330
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
331
+ end
332
+
333
+ hash[param] = _to_hash(value)
334
+ end
335
+ hash
336
+ end
337
+
338
+ # Outputs non-array value in the form of hash
339
+ # For object, use to_hash. Otherwise, just return the value
340
+ # @param [Object] value Any valid value
341
+ # @return [Hash] Returns the value in the form of hash
342
+ def _to_hash(value)
343
+ if value.is_a?(Array)
344
+ value.compact.map { |v| _to_hash(v) }
345
+ elsif value.is_a?(Hash)
346
+ {}.tap do |hash|
347
+ value.each { |k, v| hash[k] = _to_hash(v) }
348
+ end
349
+ elsif value.respond_to? :to_hash
350
+ value.to_hash
351
+ else
352
+ value
353
+ end
354
+ end
355
+
356
+ end
357
+
358
+ end
@@ -25,6 +25,9 @@ module Tremendous
25
25
  # Fees for the order (in USD)
26
26
  attr_accessor :fees
27
27
 
28
+ # Discount for the order (in USD)
29
+ attr_accessor :discount
30
+
28
31
  attr_accessor :refund
29
32
 
30
33
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -33,6 +36,7 @@ module Tremendous
33
36
  :'subtotal' => :'subtotal',
34
37
  :'total' => :'total',
35
38
  :'fees' => :'fees',
39
+ :'discount' => :'discount',
36
40
  :'refund' => :'refund'
37
41
  }
38
42
  end
@@ -48,6 +52,7 @@ module Tremendous
48
52
  :'subtotal' => :'Float',
49
53
  :'total' => :'Float',
50
54
  :'fees' => :'Float',
55
+ :'discount' => :'Float',
51
56
  :'refund' => :'ListOrders200ResponseOrdersInnerPaymentRefund'
52
57
  }
53
58
  end
@@ -75,14 +80,26 @@ module Tremendous
75
80
 
76
81
  if attributes.key?(:'subtotal')
77
82
  self.subtotal = attributes[:'subtotal']
83
+ else
84
+ self.subtotal = nil
78
85
  end
79
86
 
80
87
  if attributes.key?(:'total')
81
88
  self.total = attributes[:'total']
89
+ else
90
+ self.total = nil
82
91
  end
83
92
 
84
93
  if attributes.key?(:'fees')
85
94
  self.fees = attributes[:'fees']
95
+ else
96
+ self.fees = nil
97
+ end
98
+
99
+ if attributes.key?(:'discount')
100
+ self.discount = attributes[:'discount']
101
+ else
102
+ self.discount = nil
86
103
  end
87
104
 
88
105
  if attributes.key?(:'refund')
@@ -95,18 +112,38 @@ module Tremendous
95
112
  def list_invalid_properties
96
113
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
97
114
  invalid_properties = Array.new
98
- if !@subtotal.nil? && @subtotal < 0
115
+ if @subtotal.nil?
116
+ invalid_properties.push('invalid value for "subtotal", subtotal cannot be nil.')
117
+ end
118
+
119
+ if @subtotal < 0
99
120
  invalid_properties.push('invalid value for "subtotal", must be greater than or equal to 0.')
100
121
  end
101
122
 
102
- if !@total.nil? && @total < 0
123
+ if @total.nil?
124
+ invalid_properties.push('invalid value for "total", total cannot be nil.')
125
+ end
126
+
127
+ if @total < 0
103
128
  invalid_properties.push('invalid value for "total", must be greater than or equal to 0.')
104
129
  end
105
130
 
106
- if !@fees.nil? && @fees < 0
131
+ if @fees.nil?
132
+ invalid_properties.push('invalid value for "fees", fees cannot be nil.')
133
+ end
134
+
135
+ if @fees < 0
107
136
  invalid_properties.push('invalid value for "fees", must be greater than or equal to 0.')
108
137
  end
109
138
 
139
+ if @discount.nil?
140
+ invalid_properties.push('invalid value for "discount", discount cannot be nil.')
141
+ end
142
+
143
+ if @discount < 0
144
+ invalid_properties.push('invalid value for "discount", must be greater than or equal to 0.')
145
+ end
146
+
110
147
  invalid_properties
111
148
  end
112
149
 
@@ -114,9 +151,14 @@ module Tremendous
114
151
  # @return true if the model is valid
115
152
  def valid?
116
153
  warn '[DEPRECATED] the `valid?` method is obsolete'
117
- return false if !@subtotal.nil? && @subtotal < 0
118
- return false if !@total.nil? && @total < 0
119
- return false if !@fees.nil? && @fees < 0
154
+ return false if @subtotal.nil?
155
+ return false if @subtotal < 0
156
+ return false if @total.nil?
157
+ return false if @total < 0
158
+ return false if @fees.nil?
159
+ return false if @fees < 0
160
+ return false if @discount.nil?
161
+ return false if @discount < 0
120
162
  true
121
163
  end
122
164
 
@@ -162,6 +204,20 @@ module Tremendous
162
204
  @fees = fees
163
205
  end
164
206
 
207
+ # Custom attribute writer method with validation
208
+ # @param [Object] discount Value to be assigned
209
+ def discount=(discount)
210
+ if discount.nil?
211
+ fail ArgumentError, 'discount cannot be nil'
212
+ end
213
+
214
+ if discount < 0
215
+ fail ArgumentError, 'invalid value for "discount", must be greater than or equal to 0.'
216
+ end
217
+
218
+ @discount = discount
219
+ end
220
+
165
221
  # Checks equality by comparing each attribute.
166
222
  # @param [Object] Object to be compared
167
223
  def ==(o)
@@ -170,6 +226,7 @@ module Tremendous
170
226
  subtotal == o.subtotal &&
171
227
  total == o.total &&
172
228
  fees == o.fees &&
229
+ discount == o.discount &&
173
230
  refund == o.refund
174
231
  end
175
232
 
@@ -182,7 +239,7 @@ module Tremendous
182
239
  # Calculates hash code according to all attributes.
183
240
  # @return [Integer] Hash code
184
241
  def hash
185
- [subtotal, total, fees, refund].hash
242
+ [subtotal, total, fees, discount, refund].hash
186
243
  end
187
244
 
188
245
  # Builds the object from hash
@@ -25,6 +25,9 @@ module Tremendous
25
25
  # Fees for the order (in USD)
26
26
  attr_accessor :fees
27
27
 
28
+ # Discount for the order (in USD)
29
+ attr_accessor :discount
30
+
28
31
  attr_accessor :refund
29
32
 
30
33
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -33,6 +36,7 @@ module Tremendous
33
36
  :'subtotal' => :'subtotal',
34
37
  :'total' => :'total',
35
38
  :'fees' => :'fees',
39
+ :'discount' => :'discount',
36
40
  :'refund' => :'refund'
37
41
  }
38
42
  end
@@ -48,6 +52,7 @@ module Tremendous
48
52
  :'subtotal' => :'Float',
49
53
  :'total' => :'Float',
50
54
  :'fees' => :'Float',
55
+ :'discount' => :'Float',
51
56
  :'refund' => :'PaymentDetailsRefund'
52
57
  }
53
58
  end
@@ -75,14 +80,26 @@ module Tremendous
75
80
 
76
81
  if attributes.key?(:'subtotal')
77
82
  self.subtotal = attributes[:'subtotal']
83
+ else
84
+ self.subtotal = nil
78
85
  end
79
86
 
80
87
  if attributes.key?(:'total')
81
88
  self.total = attributes[:'total']
89
+ else
90
+ self.total = nil
82
91
  end
83
92
 
84
93
  if attributes.key?(:'fees')
85
94
  self.fees = attributes[:'fees']
95
+ else
96
+ self.fees = nil
97
+ end
98
+
99
+ if attributes.key?(:'discount')
100
+ self.discount = attributes[:'discount']
101
+ else
102
+ self.discount = nil
86
103
  end
87
104
 
88
105
  if attributes.key?(:'refund')
@@ -95,18 +112,38 @@ module Tremendous
95
112
  def list_invalid_properties
96
113
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
97
114
  invalid_properties = Array.new
98
- if !@subtotal.nil? && @subtotal < 0
115
+ if @subtotal.nil?
116
+ invalid_properties.push('invalid value for "subtotal", subtotal cannot be nil.')
117
+ end
118
+
119
+ if @subtotal < 0
99
120
  invalid_properties.push('invalid value for "subtotal", must be greater than or equal to 0.')
100
121
  end
101
122
 
102
- if !@total.nil? && @total < 0
123
+ if @total.nil?
124
+ invalid_properties.push('invalid value for "total", total cannot be nil.')
125
+ end
126
+
127
+ if @total < 0
103
128
  invalid_properties.push('invalid value for "total", must be greater than or equal to 0.')
104
129
  end
105
130
 
106
- if !@fees.nil? && @fees < 0
131
+ if @fees.nil?
132
+ invalid_properties.push('invalid value for "fees", fees cannot be nil.')
133
+ end
134
+
135
+ if @fees < 0
107
136
  invalid_properties.push('invalid value for "fees", must be greater than or equal to 0.')
108
137
  end
109
138
 
139
+ if @discount.nil?
140
+ invalid_properties.push('invalid value for "discount", discount cannot be nil.')
141
+ end
142
+
143
+ if @discount < 0
144
+ invalid_properties.push('invalid value for "discount", must be greater than or equal to 0.')
145
+ end
146
+
110
147
  invalid_properties
111
148
  end
112
149
 
@@ -114,9 +151,14 @@ module Tremendous
114
151
  # @return true if the model is valid
115
152
  def valid?
116
153
  warn '[DEPRECATED] the `valid?` method is obsolete'
117
- return false if !@subtotal.nil? && @subtotal < 0
118
- return false if !@total.nil? && @total < 0
119
- return false if !@fees.nil? && @fees < 0
154
+ return false if @subtotal.nil?
155
+ return false if @subtotal < 0
156
+ return false if @total.nil?
157
+ return false if @total < 0
158
+ return false if @fees.nil?
159
+ return false if @fees < 0
160
+ return false if @discount.nil?
161
+ return false if @discount < 0
120
162
  true
121
163
  end
122
164
 
@@ -162,6 +204,20 @@ module Tremendous
162
204
  @fees = fees
163
205
  end
164
206
 
207
+ # Custom attribute writer method with validation
208
+ # @param [Object] discount Value to be assigned
209
+ def discount=(discount)
210
+ if discount.nil?
211
+ fail ArgumentError, 'discount cannot be nil'
212
+ end
213
+
214
+ if discount < 0
215
+ fail ArgumentError, 'invalid value for "discount", must be greater than or equal to 0.'
216
+ end
217
+
218
+ @discount = discount
219
+ end
220
+
165
221
  # Checks equality by comparing each attribute.
166
222
  # @param [Object] Object to be compared
167
223
  def ==(o)
@@ -170,6 +226,7 @@ module Tremendous
170
226
  subtotal == o.subtotal &&
171
227
  total == o.total &&
172
228
  fees == o.fees &&
229
+ discount == o.discount &&
173
230
  refund == o.refund
174
231
  end
175
232
 
@@ -182,7 +239,7 @@ module Tremendous
182
239
  # Calculates hash code according to all attributes.
183
240
  # @return [Integer] Hash code
184
241
  def hash
185
- [subtotal, total, fees, refund].hash
242
+ [subtotal, total, fees, discount, refund].hash
186
243
  end
187
244
 
188
245
  # Builds the object from hash