seatschart 0.1.1 → 0.2.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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -3
  3. data/lib/seatschart/api/charts_api.rb +9 -9
  4. data/lib/seatschart/api/embed_api.rb +13 -2
  5. data/lib/seatschart/api/event_log_api.rb +2 -2
  6. data/lib/seatschart/api/events_api.rb +186 -20
  7. data/lib/seatschart/api/listings_api.rb +884 -0
  8. data/lib/seatschart/api/object_status_api.rb +2 -2
  9. data/lib/seatschart/api/seasons_api.rb +113 -8
  10. data/lib/seatschart/api/seats_api.rb +3 -22
  11. data/lib/seatschart/api/usage_api.rb +4 -4
  12. data/lib/seatschart/api/webhooks_api.rb +2 -2
  13. data/lib/seatschart/api/workspace_api.rb +4 -4
  14. data/lib/seatschart/models/api_error.rb +307 -0
  15. data/lib/seatschart/models/api_error_params_value.rb +105 -0
  16. data/lib/seatschart/models/get_api_monitoring_requests200_response.rb +17 -1
  17. data/lib/seatschart/models/get_api_monitoring_requests200_response_concurrency.rb +318 -0
  18. data/lib/seatschart/models/get_api_monitoring_requests200_response_concurrency_api_keys_inner.rb +297 -0
  19. data/lib/seatschart/models/get_api_monitoring_requests200_response_points_inner.rb +21 -4
  20. data/lib/seatschart/models/get_api_workspace_settings200_response_effective.rb +20 -4
  21. data/lib/seatschart/models/get_api_workspace_settings200_response_overrides.rb +13 -4
  22. data/lib/seatschart/models/get_api_workspace_settings200_response_sources.rb +32 -4
  23. data/lib/seatschart/models/patch_api_events_by_event_id_listings_by_listing_id_request.rb +379 -0
  24. data/lib/seatschart/models/patch_api_listing_types_by_key_request.rb +376 -0
  25. data/lib/seatschart/models/patch_api_seasons_by_season_id_partial_seasons_by_partial_season_id_request.rb +268 -0
  26. data/lib/seatschart/models/patch_api_seasons_by_season_id_request.rb +27 -1
  27. data/lib/seatschart/models/patch_api_webhooks_by_id_request.rb +1 -1
  28. data/lib/seatschart/models/patch_api_workspace_settings_request.rb +12 -1
  29. data/lib/seatschart/models/post_api_charts_by_chart_id_actions_validate_request_seats_inner_accessibility.rb +6 -6
  30. data/lib/seatschart/models/post_api_events_actions_change_object_status_request_status_changes_inner.rb +0 -11
  31. data/lib/seatschart/models/post_api_events_by_event_id_actions_change_object_status_request.rb +13 -26
  32. data/lib/seatschart/models/post_api_events_by_event_id_actions_change_object_status_request_listing.rb +392 -0
  33. data/lib/seatschart/models/post_api_events_by_event_id_actions_mark_everything_as_not_for_sale_request.rb +215 -0
  34. data/lib/seatschart/models/post_api_events_by_event_id_listings_by_listing_id_actions_mark_sold_request.rb +243 -0
  35. data/lib/seatschart/models/post_api_events_by_event_id_listings_request.rb +435 -0
  36. data/lib/seatschart/models/post_api_events_by_event_id_listings_request_objects_inner.rb +104 -0
  37. data/lib/seatschart/models/post_api_events_by_event_id_listings_request_objects_inner_any_of.rb +325 -0
  38. data/lib/seatschart/models/post_api_ga_confirm_request.rb +0 -44
  39. data/lib/seatschart/models/post_api_ga_release_request.rb +0 -11
  40. data/lib/seatschart/models/post_api_ga_reserve_request.rb +0 -33
  41. data/lib/seatschart/models/post_api_hold_tokens_request.rb +0 -22
  42. data/lib/seatschart/models/post_api_listing_types_request.rb +439 -0
  43. data/lib/seatschart/models/post_api_quotes_request.rb +0 -22
  44. data/lib/seatschart/models/post_api_seasons_by_season_id_partial_seasons_request.rb +27 -1
  45. data/lib/seatschart/models/post_api_seasons_request.rb +27 -1
  46. data/lib/seatschart/models/post_api_seats_best_available_request.rb +0 -11
  47. data/lib/seatschart/models/post_api_seats_confirm_request.rb +0 -44
  48. data/lib/seatschart/models/post_api_seats_release_request.rb +0 -11
  49. data/lib/seatschart/models/post_api_seats_reserve_request.rb +0 -22
  50. data/lib/seatschart/models/post_api_viewer_tokens_request.rb +0 -11
  51. data/lib/seatschart/models/post_api_webhooks_request.rb +1 -1
  52. data/lib/seatschart/models/put_api_charts_by_chart_id_map_draft_request.rb +348 -0
  53. data/lib/seatschart/version.rb +1 -1
  54. data/lib/seatschart.rb +16 -0
  55. metadata +17 -1
@@ -17,12 +17,16 @@ module SeatsChart
17
17
  class PatchApiSeasonsBySeasonIdRequest
18
18
  attr_accessor :name
19
19
 
20
+ # Set or rename the key; `null` or `\"\"` clears it. 409 `season_key_taken`. Partner key: unique per workspace, 1–100 URL-safe characters (letters, digits, `_ . ~ -`, starting with a letter or digit), never UUID-shaped. Every season route accepts the key in place of the id (path, body and query `seasonId`), like event and chart keys.
21
+ attr_accessor :key
22
+
20
23
  attr_accessor :source_event_id
21
24
 
22
25
  # Attribute mapping from ruby-style variable name to JSON key.
23
26
  def self.attribute_map
24
27
  {
25
28
  :'name' => :'name',
29
+ :'key' => :'key',
26
30
  :'source_event_id' => :'sourceEventId'
27
31
  }
28
32
  end
@@ -36,6 +40,7 @@ module SeatsChart
36
40
  def self.openapi_types
37
41
  {
38
42
  :'name' => :'String',
43
+ :'key' => :'String',
39
44
  :'source_event_id' => :'String'
40
45
  }
41
46
  end
@@ -43,6 +48,7 @@ module SeatsChart
43
48
  # List of attributes with nullable: true
44
49
  def self.openapi_nullable
45
50
  Set.new([
51
+ :'key',
46
52
  :'source_event_id'
47
53
  ])
48
54
  end
@@ -66,6 +72,10 @@ module SeatsChart
66
72
  self.name = attributes[:'name']
67
73
  end
68
74
 
75
+ if attributes.key?(:'key')
76
+ self.key = attributes[:'key']
77
+ end
78
+
69
79
  if attributes.key?(:'source_event_id')
70
80
  self.source_event_id = attributes[:'source_event_id']
71
81
  end
@@ -84,6 +94,10 @@ module SeatsChart
84
94
  invalid_properties.push('invalid value for "name", the character length must be great than or equal to 1.')
85
95
  end
86
96
 
97
+ if !@key.nil? && @key.to_s.length > 100
98
+ invalid_properties.push('invalid value for "key", the character length must be smaller than or equal to 100.')
99
+ end
100
+
87
101
  if !@source_event_id.nil? && @source_event_id.to_s.length > 36
88
102
  invalid_properties.push('invalid value for "source_event_id", the character length must be smaller than or equal to 36.')
89
103
  end
@@ -101,6 +115,7 @@ module SeatsChart
101
115
  warn '[DEPRECATED] the `valid?` method is obsolete'
102
116
  return false if !@name.nil? && @name.to_s.length > 512
103
117
  return false if !@name.nil? && @name.to_s.length < 1
118
+ return false if !@key.nil? && @key.to_s.length > 100
104
119
  return false if !@source_event_id.nil? && @source_event_id.to_s.length > 36
105
120
  return false if !@source_event_id.nil? && @source_event_id.to_s.length < 36
106
121
  true
@@ -124,6 +139,16 @@ module SeatsChart
124
139
  @name = name
125
140
  end
126
141
 
142
+ # Custom attribute writer method with validation
143
+ # @param [Object] key Value to be assigned
144
+ def key=(key)
145
+ if !key.nil? && key.to_s.length > 100
146
+ fail ArgumentError, 'invalid value for "key", the character length must be smaller than or equal to 100.'
147
+ end
148
+
149
+ @key = key
150
+ end
151
+
127
152
  # Custom attribute writer method with validation
128
153
  # @param [Object] source_event_id Value to be assigned
129
154
  def source_event_id=(source_event_id)
@@ -144,6 +169,7 @@ module SeatsChart
144
169
  return true if self.equal?(o)
145
170
  self.class == o.class &&
146
171
  name == o.name &&
172
+ key == o.key &&
147
173
  source_event_id == o.source_event_id
148
174
  end
149
175
 
@@ -156,7 +182,7 @@ module SeatsChart
156
182
  # Calculates hash code according to all attributes.
157
183
  # @return [Integer] Hash code
158
184
  def hash
159
- [name, source_event_id].hash
185
+ [name, key, source_event_id].hash
160
186
  end
161
187
 
162
188
  # Builds the object from hash
@@ -19,7 +19,7 @@ module SeatsChart
19
19
 
20
20
  attr_accessor :is_active
21
21
 
22
- # Subscribed event types: `[\"*\"]` (default) for every type, or a list of `reservations.confirmed`, `holds.created`, `holds.released`, `ga.confirmed`, `ga.released`, `objects.updated`, `season.objects.updated`, `hold.expired`, `event.created`, `event.updated`, `event.deleted`, `chart.published`, `lots.switched`, `chart.created`, `event.for_sale_changed`, `event.channels_updated`, `event.categories_updated`, `event.table_booking_changed`.
22
+ # Subscribed event types: `[\"*\"]` (default) for every type, or a list of `reservations.confirmed`, `holds.created`, `holds.released`, `ga.confirmed`, `ga.released`, `objects.updated`, `season.objects.updated`, `hold.expired`, `event.created`, `event.updated`, `event.deleted`, `chart.published`, `lots.switched`, `chart.created`, `event.for_sale_changed`, `event.channels_updated`, `event.categories_updated`, `event.table_booking_changed`, `event.listings_updated`. Seats.io-named aliases (`event.for.sale.config.updated`, `event.channels.updated`, `event.categories.updated`, `event.table.booking.config.updated`) are opt-in: listed explicitly, the endpoint also receives the aliased event under that name (same payload, `type` = the alias); `[\"*\"]` never includes them.
23
23
  attr_accessor :event_types
24
24
 
25
25
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -27,6 +27,9 @@ module SeatsChart
27
27
  # `null` = use the default (on).
28
28
  attr_accessor :ga_places_to_channels
29
29
 
30
+ # New events start not for sale; `null` = use the default (off).
31
+ attr_accessor :new_events_not_for_sale
32
+
30
33
  # Members must sign in with two-factor authentication (enforced at login with a guided enrolment). Dashboard session only; the caller must have 2FA enabled.
31
34
  attr_accessor :require_two_factor
32
35
 
@@ -37,6 +40,7 @@ module SeatsChart
37
40
  :'max_seats_per_hold_token' => :'maxSeatsPerHoldToken',
38
41
  :'ticket_buyer_validation' => :'ticketBuyerValidation',
39
42
  :'ga_places_to_channels' => :'gaPlacesToChannels',
43
+ :'new_events_not_for_sale' => :'newEventsNotForSale',
40
44
  :'require_two_factor' => :'requireTwoFactor'
41
45
  }
42
46
  end
@@ -53,6 +57,7 @@ module SeatsChart
53
57
  :'max_seats_per_hold_token' => :'Integer',
54
58
  :'ticket_buyer_validation' => :'Boolean',
55
59
  :'ga_places_to_channels' => :'Boolean',
60
+ :'new_events_not_for_sale' => :'Boolean',
56
61
  :'require_two_factor' => :'Boolean'
57
62
  }
58
63
  end
@@ -64,6 +69,7 @@ module SeatsChart
64
69
  :'max_seats_per_hold_token',
65
70
  :'ticket_buyer_validation',
66
71
  :'ga_places_to_channels',
72
+ :'new_events_not_for_sale',
67
73
  ])
68
74
  end
69
75
 
@@ -98,6 +104,10 @@ module SeatsChart
98
104
  self.ga_places_to_channels = attributes[:'ga_places_to_channels']
99
105
  end
100
106
 
107
+ if attributes.key?(:'new_events_not_for_sale')
108
+ self.new_events_not_for_sale = attributes[:'new_events_not_for_sale']
109
+ end
110
+
101
111
  if attributes.key?(:'require_two_factor')
102
112
  self.require_two_factor = attributes[:'require_two_factor']
103
113
  end
@@ -175,6 +185,7 @@ module SeatsChart
175
185
  max_seats_per_hold_token == o.max_seats_per_hold_token &&
176
186
  ticket_buyer_validation == o.ticket_buyer_validation &&
177
187
  ga_places_to_channels == o.ga_places_to_channels &&
188
+ new_events_not_for_sale == o.new_events_not_for_sale &&
178
189
  require_two_factor == o.require_two_factor
179
190
  end
180
191
 
@@ -187,7 +198,7 @@ module SeatsChart
187
198
  # Calculates hash code according to all attributes.
188
199
  # @return [Integer] Hash code
189
200
  def hash
190
- [hold_period_minutes, max_seats_per_hold_token, ticket_buyer_validation, ga_places_to_channels, require_two_factor].hash
201
+ [hold_period_minutes, max_seats_per_hold_token, ticket_buyer_validation, ga_places_to_channels, new_events_not_for_sale, require_two_factor].hash
191
202
  end
192
203
 
193
204
  # Builds the object from hash
@@ -30,7 +30,7 @@ module SeatsChart
30
30
  # Short buyer-facing note about the view.
31
31
  attr_accessor :view_note
32
32
 
33
- # Compact bitmask of the other accessibility and amenity flags: 16 wheelchair space without a seat in place (requires wheelchair), 32 semi-ambulatory, 64 plus-size, 128 hearing impaired (CART services), 256 hearing impaired (sign language interpretation), 512 not suitable for vertigo sufferers, 1024 limited legroom, 2048 lift-up armrests. Bits 1/2/4/8 mirror wheelchair / companion / restrictedView / obstructedView, which are always stored and returned as booleans.
33
+ # Compact bitmask of the other accessibility and amenity flags: 16 wheelchair space without a seat in place (requires wheelchair), 32 semi-ambulatory, 64 plus-size, 128 hearing impaired (CART services), 256 hearing impaired (sign language interpretation), 512 not suitable for vertigo sufferers, 1024 limited legroom, 2048 lift-up armrests, 4096 aisle seat. Bits 1/2/4/8 mirror wheelchair / companion / restrictedView / obstructedView, which are always stored and returned as booleans.
34
34
  attr_accessor :amenities
35
35
 
36
36
  # Seat display type. \"chair\" is the default and is not stored.
@@ -148,8 +148,8 @@ module SeatsChart
148
148
  invalid_properties.push('invalid value for "view_note", the character length must be smaller than or equal to 280.')
149
149
  end
150
150
 
151
- if !@amenities.nil? && @amenities > 4095
152
- invalid_properties.push('invalid value for "amenities", must be smaller than or equal to 4095.')
151
+ if !@amenities.nil? && @amenities > 8191
152
+ invalid_properties.push('invalid value for "amenities", must be smaller than or equal to 8191.')
153
153
  end
154
154
 
155
155
  if !@amenities.nil? && @amenities < 0
@@ -164,7 +164,7 @@ module SeatsChart
164
164
  def valid?
165
165
  warn '[DEPRECATED] the `valid?` method is obsolete'
166
166
  return false if !@view_note.nil? && @view_note.to_s.length > 280
167
- return false if !@amenities.nil? && @amenities > 4095
167
+ return false if !@amenities.nil? && @amenities > 8191
168
168
  return false if !@amenities.nil? && @amenities < 0
169
169
  seat_type_validator = EnumAttributeValidator.new('String', ["chair", "stool", "bench", "couch"])
170
170
  return false unless seat_type_validator.valid?(@seat_type)
@@ -192,8 +192,8 @@ module SeatsChart
192
192
  fail ArgumentError, 'amenities cannot be nil'
193
193
  end
194
194
 
195
- if amenities > 4095
196
- fail ArgumentError, 'invalid value for "amenities", must be smaller than or equal to 4095.'
195
+ if amenities > 8191
196
+ fail ArgumentError, 'invalid value for "amenities", must be smaller than or equal to 8191.'
197
197
  end
198
198
 
199
199
  if amenities < 0
@@ -316,11 +316,6 @@ module SeatsChart
316
316
  invalid_properties.push('invalid value for "ticket_buyer_id", the character length must be great than or equal to 1.')
317
317
  end
318
318
 
319
- pattern = Regexp.new(/^(?:[^\u0000-\u001F\u007F\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])+$/)
320
- if !@ticket_buyer_id.nil? && @ticket_buyer_id !~ pattern
321
- invalid_properties.push("invalid value for \"ticket_buyer_id\", must conform to the pattern #{pattern}.")
322
- end
323
-
324
319
  invalid_properties
325
320
  end
326
321
 
@@ -354,7 +349,6 @@ module SeatsChart
354
349
  return false if !@channel_keys.nil? && @channel_keys.length > 64
355
350
  return false if !@ticket_buyer_id.nil? && @ticket_buyer_id.to_s.length > 256
356
351
  return false if !@ticket_buyer_id.nil? && @ticket_buyer_id.to_s.length < 1
357
- return false if !@ticket_buyer_id.nil? && @ticket_buyer_id !~ Regexp.new(/^(?:[^\u0000-\u001F\u007F\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])+$/)
358
352
  true
359
353
  end
360
354
 
@@ -578,11 +572,6 @@ module SeatsChart
578
572
  fail ArgumentError, 'invalid value for "ticket_buyer_id", the character length must be great than or equal to 1.'
579
573
  end
580
574
 
581
- pattern = Regexp.new(/^(?:[^\u0000-\u001F\u007F\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])+$/)
582
- if ticket_buyer_id !~ pattern
583
- fail ArgumentError, "invalid value for \"ticket_buyer_id\", must conform to the pattern #{pattern}."
584
- end
585
-
586
575
  @ticket_buyer_id = ticket_buyer_id
587
576
  end
588
577
 
@@ -56,6 +56,8 @@ module SeatsChart
56
56
  # Optional opaque ticket buyer id from your system (≤ 256 printable characters). Persisted on holds, orders, reservations, GA receipts, object statuses and status history; never interpreted as an internal user id. Query with GET /events/{eventId}/objects?ticketBuyerId=….
57
57
  attr_accessor :ticket_buyer_id
58
58
 
59
+ attr_accessor :listing
60
+
59
61
  # Attribute mapping from ruby-style variable name to JSON key.
60
62
  def self.attribute_map
61
63
  {
@@ -76,7 +78,8 @@ module SeatsChart
76
78
  :'atomic' => :'atomic',
77
79
  :'user_id' => :'userId',
78
80
  :'hold_expires_in_minutes' => :'holdExpiresInMinutes',
79
- :'ticket_buyer_id' => :'ticketBuyerId'
81
+ :'ticket_buyer_id' => :'ticketBuyerId',
82
+ :'listing' => :'listing'
80
83
  }
81
84
  end
82
85
 
@@ -105,7 +108,8 @@ module SeatsChart
105
108
  :'atomic' => :'Boolean',
106
109
  :'user_id' => :'String',
107
110
  :'hold_expires_in_minutes' => :'Integer',
108
- :'ticket_buyer_id' => :'String'
111
+ :'ticket_buyer_id' => :'String',
112
+ :'listing' => :'PostApiEventsByEventIdActionsChangeObjectStatusRequestListing'
109
113
  }
110
114
  end
111
115
 
@@ -213,6 +217,10 @@ module SeatsChart
213
217
  if attributes.key?(:'ticket_buyer_id')
214
218
  self.ticket_buyer_id = attributes[:'ticket_buyer_id']
215
219
  end
220
+
221
+ if attributes.key?(:'listing')
222
+ self.listing = attributes[:'listing']
223
+ end
216
224
  end
217
225
 
218
226
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -325,11 +333,6 @@ module SeatsChart
325
333
  invalid_properties.push('invalid value for "user_id", the character length must be great than or equal to 1.')
326
334
  end
327
335
 
328
- pattern = Regexp.new(/^(?:[^\u0000\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])+$/)
329
- if !@user_id.nil? && @user_id !~ pattern
330
- invalid_properties.push("invalid value for \"user_id\", must conform to the pattern #{pattern}.")
331
- end
332
-
333
336
  if !@hold_expires_in_minutes.nil? && @hold_expires_in_minutes > 120
334
337
  invalid_properties.push('invalid value for "hold_expires_in_minutes", must be smaller than or equal to 120.')
335
338
  end
@@ -346,11 +349,6 @@ module SeatsChart
346
349
  invalid_properties.push('invalid value for "ticket_buyer_id", the character length must be great than or equal to 1.')
347
350
  end
348
351
 
349
- pattern = Regexp.new(/^(?:[^\u0000-\u001F\u007F\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])+$/)
350
- if !@ticket_buyer_id.nil? && @ticket_buyer_id !~ pattern
351
- invalid_properties.push("invalid value for \"ticket_buyer_id\", must conform to the pattern #{pattern}.")
352
- end
353
-
354
352
  invalid_properties
355
353
  end
356
354
 
@@ -384,12 +382,10 @@ module SeatsChart
384
382
  return false if !@events.nil? && @events.length < 1
385
383
  return false if !@user_id.nil? && @user_id.to_s.length > 256
386
384
  return false if !@user_id.nil? && @user_id.to_s.length < 1
387
- return false if !@user_id.nil? && @user_id !~ Regexp.new(/^(?:[^\u0000\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])+$/)
388
385
  return false if !@hold_expires_in_minutes.nil? && @hold_expires_in_minutes > 120
389
386
  return false if !@hold_expires_in_minutes.nil? && @hold_expires_in_minutes < 1
390
387
  return false if !@ticket_buyer_id.nil? && @ticket_buyer_id.to_s.length > 256
391
388
  return false if !@ticket_buyer_id.nil? && @ticket_buyer_id.to_s.length < 1
392
- return false if !@ticket_buyer_id.nil? && @ticket_buyer_id !~ Regexp.new(/^(?:[^\u0000-\u001F\u007F\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])+$/)
393
389
  true
394
390
  end
395
391
 
@@ -621,11 +617,6 @@ module SeatsChart
621
617
  fail ArgumentError, 'invalid value for "user_id", the character length must be great than or equal to 1.'
622
618
  end
623
619
 
624
- pattern = Regexp.new(/^(?:[^\u0000\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])+$/)
625
- if user_id !~ pattern
626
- fail ArgumentError, "invalid value for \"user_id\", must conform to the pattern #{pattern}."
627
- end
628
-
629
620
  @user_id = user_id
630
621
  end
631
622
 
@@ -662,11 +653,6 @@ module SeatsChart
662
653
  fail ArgumentError, 'invalid value for "ticket_buyer_id", the character length must be great than or equal to 1.'
663
654
  end
664
655
 
665
- pattern = Regexp.new(/^(?:[^\u0000-\u001F\u007F\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])+$/)
666
- if ticket_buyer_id !~ pattern
667
- fail ArgumentError, "invalid value for \"ticket_buyer_id\", must conform to the pattern #{pattern}."
668
- end
669
-
670
656
  @ticket_buyer_id = ticket_buyer_id
671
657
  end
672
658
 
@@ -692,7 +678,8 @@ module SeatsChart
692
678
  atomic == o.atomic &&
693
679
  user_id == o.user_id &&
694
680
  hold_expires_in_minutes == o.hold_expires_in_minutes &&
695
- ticket_buyer_id == o.ticket_buyer_id
681
+ ticket_buyer_id == o.ticket_buyer_id &&
682
+ listing == o.listing
696
683
  end
697
684
 
698
685
  # @see the `==` method
@@ -704,7 +691,7 @@ module SeatsChart
704
691
  # Calculates hash code according to all attributes.
705
692
  # @return [Integer] Hash code
706
693
  def hash
707
- [objects, status, type, order_id, keep_extra_data, season_id, resale_price_cents, resale_listing_id, hold_token, allowed_previous_statuses, rejected_previous_statuses, channel_keys, ignore_channels, events, atomic, user_id, hold_expires_in_minutes, ticket_buyer_id].hash
694
+ [objects, status, type, order_id, keep_extra_data, season_id, resale_price_cents, resale_listing_id, hold_token, allowed_previous_statuses, rejected_previous_statuses, channel_keys, ignore_channels, events, atomic, user_id, hold_expires_in_minutes, ticket_buyer_id, listing].hash
708
695
  end
709
696
 
710
697
  # Builds the object from hash