dodopayments 2.4.1 → 2.5.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 (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/internal/util.rb +18 -4
  5. data/lib/dodopayments/models/abandoned_checkout_detected_webhook_event.rb +126 -0
  6. data/lib/dodopayments/models/abandoned_checkout_recovered_webhook_event.rb +126 -0
  7. data/lib/dodopayments/models/balance_ledger_entry.rb +2 -0
  8. data/lib/dodopayments/models/balance_retrieve_ledger_params.rb +2 -0
  9. data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +118 -0
  10. data/lib/dodopayments/models/dunning_started_webhook_event.rb +118 -0
  11. data/lib/dodopayments/models/payouts/breakup/detail_download_csv_params.rb +24 -0
  12. data/lib/dodopayments/models/payouts/breakup/detail_list_params.rb +41 -0
  13. data/lib/dodopayments/models/payouts/breakup/detail_list_response.rb +94 -0
  14. data/lib/dodopayments/models/payouts/breakup_retrieve_params.rb +22 -0
  15. data/lib/dodopayments/models/payouts/breakup_retrieve_response.rb +37 -0
  16. data/lib/dodopayments/models/subscription_update_params.rb +19 -1
  17. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +9 -1
  18. data/lib/dodopayments/models/unwrap_webhook_event.rb +9 -1
  19. data/lib/dodopayments/models/webhook_event_type.rb +6 -0
  20. data/lib/dodopayments/models/webhook_payload.rb +168 -3
  21. data/lib/dodopayments/models.rb +10 -0
  22. data/lib/dodopayments/resources/payouts/breakup/details.rb +72 -0
  23. data/lib/dodopayments/resources/payouts/breakup.rb +43 -0
  24. data/lib/dodopayments/resources/payouts.rb +4 -0
  25. data/lib/dodopayments/resources/subscriptions.rb +3 -1
  26. data/lib/dodopayments/resources/webhooks.rb +2 -2
  27. data/lib/dodopayments/version.rb +1 -1
  28. data/lib/dodopayments.rb +11 -0
  29. data/rbi/dodopayments/internal/util.rbi +8 -0
  30. data/rbi/dodopayments/models/abandoned_checkout_detected_webhook_event.rbi +271 -0
  31. data/rbi/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbi +273 -0
  32. data/rbi/dodopayments/models/balance_ledger_entry.rbi +10 -0
  33. data/rbi/dodopayments/models/balance_retrieve_ledger_params.rbi +10 -0
  34. data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +249 -0
  35. data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +249 -0
  36. data/rbi/dodopayments/models/payouts/breakup/detail_download_csv_params.rbi +45 -0
  37. data/rbi/dodopayments/models/payouts/breakup/detail_list_params.rbi +70 -0
  38. data/rbi/dodopayments/models/payouts/breakup/detail_list_response.rbi +116 -0
  39. data/rbi/dodopayments/models/payouts/breakup_retrieve_params.rbi +40 -0
  40. data/rbi/dodopayments/models/payouts/breakup_retrieve_response.rbi +53 -0
  41. data/rbi/dodopayments/models/subscription_update_params.rbi +54 -0
  42. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +4 -0
  43. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +4 -0
  44. data/rbi/dodopayments/models/webhook_event_type.rbi +21 -0
  45. data/rbi/dodopayments/models/webhook_payload.rbi +400 -4
  46. data/rbi/dodopayments/models.rbi +13 -0
  47. data/rbi/dodopayments/resources/payouts/breakup/details.rbi +60 -0
  48. data/rbi/dodopayments/resources/payouts/breakup.rbi +36 -0
  49. data/rbi/dodopayments/resources/payouts.rbi +3 -0
  50. data/rbi/dodopayments/resources/subscriptions.rbi +5 -0
  51. data/rbi/dodopayments/resources/webhooks.rbi +8 -0
  52. data/sig/dodopayments/internal/util.rbs +4 -0
  53. data/sig/dodopayments/models/abandoned_checkout_detected_webhook_event.rbs +113 -0
  54. data/sig/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbs +113 -0
  55. data/sig/dodopayments/models/balance_ledger_entry.rbs +4 -0
  56. data/sig/dodopayments/models/balance_retrieve_ledger_params.rbs +4 -0
  57. data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +110 -0
  58. data/sig/dodopayments/models/dunning_started_webhook_event.rbs +110 -0
  59. data/sig/dodopayments/models/payouts/breakup/detail_download_csv_params.rbs +28 -0
  60. data/sig/dodopayments/models/payouts/breakup/detail_list_params.rbs +40 -0
  61. data/sig/dodopayments/models/payouts/breakup/detail_list_response.rbs +64 -0
  62. data/sig/dodopayments/models/payouts/breakup_retrieve_params.rbs +25 -0
  63. data/sig/dodopayments/models/payouts/breakup_retrieve_response.rbs +23 -0
  64. data/sig/dodopayments/models/subscription_update_params.rbs +20 -0
  65. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +5 -1
  66. data/sig/dodopayments/models/unwrap_webhook_event.rbs +5 -1
  67. data/sig/dodopayments/models/webhook_event_type.rbs +12 -0
  68. data/sig/dodopayments/models/webhook_payload.rbs +165 -0
  69. data/sig/dodopayments/models.rbs +10 -0
  70. data/sig/dodopayments/resources/payouts/breakup/details.rbs +23 -0
  71. data/sig/dodopayments/resources/payouts/breakup.rbs +16 -0
  72. data/sig/dodopayments/resources/payouts.rbs +2 -0
  73. data/sig/dodopayments/resources/subscriptions.rbs +1 -0
  74. data/sig/dodopayments/resources/webhooks.rbs +10 -2
  75. metadata +35 -2
@@ -167,7 +167,7 @@ module Dodopayments
167
167
 
168
168
  # @param payload [String] The raw webhook payload as a string
169
169
  #
170
- # @return [Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
170
+ # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
171
171
  def unsafe_unwrap(payload)
172
172
  parsed = JSON.parse(payload, symbolize_names: true)
173
173
  Dodopayments::Internal::Type::Converter.coerce(Dodopayments::Models::UnsafeUnwrapWebhookEvent, parsed)
@@ -179,7 +179,7 @@ module Dodopayments
179
179
  #
180
180
  # @param key [String, nil] The webhook signing key
181
181
  #
182
- # @return [Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
182
+ # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent]
183
183
  def unwrap(payload, headers:, key: @client.webhook_key)
184
184
  if key.nil?
185
185
  raise ArgumentError.new("Cannot verify a webhook without a key on either the client's webhook_key or passed in as an argument")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dodopayments
4
- VERSION = "2.4.1"
4
+ VERSION = "2.5.0"
5
5
  end
data/lib/dodopayments.rb CHANGED
@@ -63,6 +63,8 @@ require_relative "dodopayments/models/get_dispute"
63
63
  require_relative "dodopayments/models/refund"
64
64
  require_relative "dodopayments/models/subscription"
65
65
  require_relative "dodopayments/models/payment"
66
+ require_relative "dodopayments/models/abandoned_checkout_detected_webhook_event"
67
+ require_relative "dodopayments/models/abandoned_checkout_recovered_webhook_event"
66
68
  require_relative "dodopayments/models/add_meter_to_price"
67
69
  require_relative "dodopayments/models/addon_cart_response_item"
68
70
  require_relative "dodopayments/models/addon_create_params"
@@ -172,6 +174,8 @@ require_relative "dodopayments/models/dispute_retrieve_params"
172
174
  require_relative "dodopayments/models/dispute_stage"
173
175
  require_relative "dodopayments/models/dispute_status"
174
176
  require_relative "dodopayments/models/dispute_won_webhook_event"
177
+ require_relative "dodopayments/models/dunning_recovered_webhook_event"
178
+ require_relative "dodopayments/models/dunning_started_webhook_event"
175
179
  require_relative "dodopayments/models/event"
176
180
  require_relative "dodopayments/models/event_input"
177
181
  require_relative "dodopayments/models/filter_operator"
@@ -223,6 +227,11 @@ require_relative "dodopayments/models/payment_retrieve_params"
223
227
  require_relative "dodopayments/models/payment_succeeded_webhook_event"
224
228
  require_relative "dodopayments/models/payout_list_params"
225
229
  require_relative "dodopayments/models/payout_list_response"
230
+ require_relative "dodopayments/models/payouts/breakup/detail_download_csv_params"
231
+ require_relative "dodopayments/models/payouts/breakup/detail_list_params"
232
+ require_relative "dodopayments/models/payouts/breakup/detail_list_response"
233
+ require_relative "dodopayments/models/payouts/breakup_retrieve_params"
234
+ require_relative "dodopayments/models/payouts/breakup_retrieve_response"
226
235
  require_relative "dodopayments/models/price"
227
236
  require_relative "dodopayments/models/product"
228
237
  require_relative "dodopayments/models/product_archive_params"
@@ -323,6 +332,8 @@ require_relative "dodopayments/resources/meters"
323
332
  require_relative "dodopayments/resources/misc"
324
333
  require_relative "dodopayments/resources/payments"
325
334
  require_relative "dodopayments/resources/payouts"
335
+ require_relative "dodopayments/resources/payouts/breakup"
336
+ require_relative "dodopayments/resources/payouts/breakup/details"
326
337
  require_relative "dodopayments/resources/products"
327
338
  require_relative "dodopayments/resources/products/images"
328
339
  require_relative "dodopayments/resources/products/short_links"
@@ -148,12 +148,20 @@ module Dodopayments
148
148
  end
149
149
  end
150
150
 
151
+ # https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
152
+ RFC_3986_NOT_PCHARS = T.let(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/, Regexp)
153
+
151
154
  class << self
152
155
  # @api private
153
156
  sig { params(uri: URI::Generic).returns(String) }
154
157
  def uri_origin(uri)
155
158
  end
156
159
 
160
+ # @api private
161
+ sig { params(path: T.any(String, Integer)).returns(String) }
162
+ def encode_path(path)
163
+ end
164
+
157
165
  # @api private
158
166
  sig { params(path: T.any(String, T::Array[String])).returns(String) }
159
167
  def interpolate_path(path)
@@ -0,0 +1,271 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class AbandonedCheckoutDetectedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The business identifier
15
+ sig { returns(String) }
16
+ attr_accessor :business_id
17
+
18
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
19
+ # events
20
+ sig { returns(Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data) }
21
+ attr_reader :data
22
+
23
+ sig do
24
+ params(
25
+ data:
26
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::OrHash
27
+ ).void
28
+ end
29
+ attr_writer :data
30
+
31
+ # The timestamp of when the event occurred
32
+ sig { returns(Time) }
33
+ attr_accessor :timestamp
34
+
35
+ # The event type
36
+ sig do
37
+ returns(
38
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::TaggedSymbol
39
+ )
40
+ end
41
+ attr_accessor :type
42
+
43
+ sig do
44
+ params(
45
+ business_id: String,
46
+ data:
47
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::OrHash,
48
+ timestamp: Time,
49
+ type:
50
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::OrSymbol
51
+ ).returns(T.attached_class)
52
+ end
53
+ def self.new(
54
+ # The business identifier
55
+ business_id:,
56
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
57
+ # events
58
+ data:,
59
+ # The timestamp of when the event occurred
60
+ timestamp:,
61
+ # The event type
62
+ type:
63
+ )
64
+ end
65
+
66
+ sig do
67
+ override.returns(
68
+ {
69
+ business_id: String,
70
+ data: Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data,
71
+ timestamp: Time,
72
+ type:
73
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::TaggedSymbol
74
+ }
75
+ )
76
+ end
77
+ def to_hash
78
+ end
79
+
80
+ class Data < Dodopayments::Internal::Type::BaseModel
81
+ OrHash =
82
+ T.type_alias do
83
+ T.any(
84
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data,
85
+ Dodopayments::Internal::AnyHash
86
+ )
87
+ end
88
+
89
+ sig { returns(Time) }
90
+ attr_accessor :abandoned_at
91
+
92
+ sig do
93
+ returns(
94
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol
95
+ )
96
+ end
97
+ attr_accessor :abandonment_reason
98
+
99
+ sig { returns(String) }
100
+ attr_accessor :customer_id
101
+
102
+ sig { returns(String) }
103
+ attr_accessor :payment_id
104
+
105
+ sig do
106
+ returns(
107
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
108
+ )
109
+ end
110
+ attr_accessor :status
111
+
112
+ sig { returns(T.nilable(String)) }
113
+ attr_accessor :recovered_payment_id
114
+
115
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
116
+ # events
117
+ sig do
118
+ params(
119
+ abandoned_at: Time,
120
+ abandonment_reason:
121
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::OrSymbol,
122
+ customer_id: String,
123
+ payment_id: String,
124
+ status:
125
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::OrSymbol,
126
+ recovered_payment_id: T.nilable(String)
127
+ ).returns(T.attached_class)
128
+ end
129
+ def self.new(
130
+ abandoned_at:,
131
+ abandonment_reason:,
132
+ customer_id:,
133
+ payment_id:,
134
+ status:,
135
+ recovered_payment_id: nil
136
+ )
137
+ end
138
+
139
+ sig do
140
+ override.returns(
141
+ {
142
+ abandoned_at: Time,
143
+ abandonment_reason:
144
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol,
145
+ customer_id: String,
146
+ payment_id: String,
147
+ status:
148
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol,
149
+ recovered_payment_id: T.nilable(String)
150
+ }
151
+ )
152
+ end
153
+ def to_hash
154
+ end
155
+
156
+ module AbandonmentReason
157
+ extend Dodopayments::Internal::Type::Enum
158
+
159
+ TaggedSymbol =
160
+ T.type_alias do
161
+ T.all(
162
+ Symbol,
163
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason
164
+ )
165
+ end
166
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
167
+
168
+ PAYMENT_FAILED =
169
+ T.let(
170
+ :payment_failed,
171
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol
172
+ )
173
+ CHECKOUT_INCOMPLETE =
174
+ T.let(
175
+ :checkout_incomplete,
176
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol
177
+ )
178
+
179
+ sig do
180
+ override.returns(
181
+ T::Array[
182
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason::TaggedSymbol
183
+ ]
184
+ )
185
+ end
186
+ def self.values
187
+ end
188
+ end
189
+
190
+ module Status
191
+ extend Dodopayments::Internal::Type::Enum
192
+
193
+ TaggedSymbol =
194
+ T.type_alias do
195
+ T.all(
196
+ Symbol,
197
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status
198
+ )
199
+ end
200
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
201
+
202
+ ABANDONED =
203
+ T.let(
204
+ :abandoned,
205
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
206
+ )
207
+ RECOVERING =
208
+ T.let(
209
+ :recovering,
210
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
211
+ )
212
+ RECOVERED =
213
+ T.let(
214
+ :recovered,
215
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
216
+ )
217
+ EXHAUSTED =
218
+ T.let(
219
+ :exhausted,
220
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
221
+ )
222
+ OPTED_OUT =
223
+ T.let(
224
+ :opted_out,
225
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
226
+ )
227
+
228
+ sig do
229
+ override.returns(
230
+ T::Array[
231
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status::TaggedSymbol
232
+ ]
233
+ )
234
+ end
235
+ def self.values
236
+ end
237
+ end
238
+ end
239
+
240
+ # The event type
241
+ module Type
242
+ extend Dodopayments::Internal::Type::Enum
243
+
244
+ TaggedSymbol =
245
+ T.type_alias do
246
+ T.all(
247
+ Symbol,
248
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type
249
+ )
250
+ end
251
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
252
+
253
+ ABANDONED_CHECKOUT_DETECTED =
254
+ T.let(
255
+ :"abandoned_checkout.detected",
256
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::TaggedSymbol
257
+ )
258
+
259
+ sig do
260
+ override.returns(
261
+ T::Array[
262
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type::TaggedSymbol
263
+ ]
264
+ )
265
+ end
266
+ def self.values
267
+ end
268
+ end
269
+ end
270
+ end
271
+ end
@@ -0,0 +1,273 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class AbandonedCheckoutRecoveredWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent,
10
+ Dodopayments::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The business identifier
15
+ sig { returns(String) }
16
+ attr_accessor :business_id
17
+
18
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
19
+ # events
20
+ sig do
21
+ returns(Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data)
22
+ end
23
+ attr_reader :data
24
+
25
+ sig do
26
+ params(
27
+ data:
28
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::OrHash
29
+ ).void
30
+ end
31
+ attr_writer :data
32
+
33
+ # The timestamp of when the event occurred
34
+ sig { returns(Time) }
35
+ attr_accessor :timestamp
36
+
37
+ # The event type
38
+ sig do
39
+ returns(
40
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Type::TaggedSymbol
41
+ )
42
+ end
43
+ attr_accessor :type
44
+
45
+ sig do
46
+ params(
47
+ business_id: String,
48
+ data:
49
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::OrHash,
50
+ timestamp: Time,
51
+ type:
52
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Type::OrSymbol
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+ # The business identifier
57
+ business_id:,
58
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
59
+ # events
60
+ data:,
61
+ # The timestamp of when the event occurred
62
+ timestamp:,
63
+ # The event type
64
+ type:
65
+ )
66
+ end
67
+
68
+ sig do
69
+ override.returns(
70
+ {
71
+ business_id: String,
72
+ data: Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data,
73
+ timestamp: Time,
74
+ type:
75
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Type::TaggedSymbol
76
+ }
77
+ )
78
+ end
79
+ def to_hash
80
+ end
81
+
82
+ class Data < Dodopayments::Internal::Type::BaseModel
83
+ OrHash =
84
+ T.type_alias do
85
+ T.any(
86
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data,
87
+ Dodopayments::Internal::AnyHash
88
+ )
89
+ end
90
+
91
+ sig { returns(Time) }
92
+ attr_accessor :abandoned_at
93
+
94
+ sig do
95
+ returns(
96
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason::TaggedSymbol
97
+ )
98
+ end
99
+ attr_accessor :abandonment_reason
100
+
101
+ sig { returns(String) }
102
+ attr_accessor :customer_id
103
+
104
+ sig { returns(String) }
105
+ attr_accessor :payment_id
106
+
107
+ sig do
108
+ returns(
109
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status::TaggedSymbol
110
+ )
111
+ end
112
+ attr_accessor :status
113
+
114
+ sig { returns(T.nilable(String)) }
115
+ attr_accessor :recovered_payment_id
116
+
117
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
118
+ # events
119
+ sig do
120
+ params(
121
+ abandoned_at: Time,
122
+ abandonment_reason:
123
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason::OrSymbol,
124
+ customer_id: String,
125
+ payment_id: String,
126
+ status:
127
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status::OrSymbol,
128
+ recovered_payment_id: T.nilable(String)
129
+ ).returns(T.attached_class)
130
+ end
131
+ def self.new(
132
+ abandoned_at:,
133
+ abandonment_reason:,
134
+ customer_id:,
135
+ payment_id:,
136
+ status:,
137
+ recovered_payment_id: nil
138
+ )
139
+ end
140
+
141
+ sig do
142
+ override.returns(
143
+ {
144
+ abandoned_at: Time,
145
+ abandonment_reason:
146
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason::TaggedSymbol,
147
+ customer_id: String,
148
+ payment_id: String,
149
+ status:
150
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status::TaggedSymbol,
151
+ recovered_payment_id: T.nilable(String)
152
+ }
153
+ )
154
+ end
155
+ def to_hash
156
+ end
157
+
158
+ module AbandonmentReason
159
+ extend Dodopayments::Internal::Type::Enum
160
+
161
+ TaggedSymbol =
162
+ T.type_alias do
163
+ T.all(
164
+ Symbol,
165
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason
166
+ )
167
+ end
168
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
169
+
170
+ PAYMENT_FAILED =
171
+ T.let(
172
+ :payment_failed,
173
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason::TaggedSymbol
174
+ )
175
+ CHECKOUT_INCOMPLETE =
176
+ T.let(
177
+ :checkout_incomplete,
178
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason::TaggedSymbol
179
+ )
180
+
181
+ sig do
182
+ override.returns(
183
+ T::Array[
184
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason::TaggedSymbol
185
+ ]
186
+ )
187
+ end
188
+ def self.values
189
+ end
190
+ end
191
+
192
+ module Status
193
+ extend Dodopayments::Internal::Type::Enum
194
+
195
+ TaggedSymbol =
196
+ T.type_alias do
197
+ T.all(
198
+ Symbol,
199
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status
200
+ )
201
+ end
202
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
203
+
204
+ ABANDONED =
205
+ T.let(
206
+ :abandoned,
207
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status::TaggedSymbol
208
+ )
209
+ RECOVERING =
210
+ T.let(
211
+ :recovering,
212
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status::TaggedSymbol
213
+ )
214
+ RECOVERED =
215
+ T.let(
216
+ :recovered,
217
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status::TaggedSymbol
218
+ )
219
+ EXHAUSTED =
220
+ T.let(
221
+ :exhausted,
222
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status::TaggedSymbol
223
+ )
224
+ OPTED_OUT =
225
+ T.let(
226
+ :opted_out,
227
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status::TaggedSymbol
228
+ )
229
+
230
+ sig do
231
+ override.returns(
232
+ T::Array[
233
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status::TaggedSymbol
234
+ ]
235
+ )
236
+ end
237
+ def self.values
238
+ end
239
+ end
240
+ end
241
+
242
+ # The event type
243
+ module Type
244
+ extend Dodopayments::Internal::Type::Enum
245
+
246
+ TaggedSymbol =
247
+ T.type_alias do
248
+ T.all(
249
+ Symbol,
250
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Type
251
+ )
252
+ end
253
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
254
+
255
+ ABANDONED_CHECKOUT_RECOVERED =
256
+ T.let(
257
+ :"abandoned_checkout.recovered",
258
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Type::TaggedSymbol
259
+ )
260
+
261
+ sig do
262
+ override.returns(
263
+ T::Array[
264
+ Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Type::TaggedSymbol
265
+ ]
266
+ )
267
+ end
268
+ def self.values
269
+ end
270
+ end
271
+ end
272
+ end
273
+ end
@@ -197,6 +197,16 @@ module Dodopayments
197
197
  :currency_conversion,
198
198
  Dodopayments::BalanceLedgerEntry::EventType::TaggedSymbol
199
199
  )
200
+ ABANDONED_CART_RECOVERY_FEE =
201
+ T.let(
202
+ :abandoned_cart_recovery_fee,
203
+ Dodopayments::BalanceLedgerEntry::EventType::TaggedSymbol
204
+ )
205
+ DUNNING_FEES =
206
+ T.let(
207
+ :dunning_fees,
208
+ Dodopayments::BalanceLedgerEntry::EventType::TaggedSymbol
209
+ )
200
210
 
201
211
  sig do
202
212
  override.returns(
@@ -995,6 +995,16 @@ module Dodopayments
995
995
  :currency_conversion,
996
996
  Dodopayments::BalanceRetrieveLedgerParams::EventType::TaggedSymbol
997
997
  )
998
+ ABANDONED_CART_RECOVERY_FEE =
999
+ T.let(
1000
+ :abandoned_cart_recovery_fee,
1001
+ Dodopayments::BalanceRetrieveLedgerParams::EventType::TaggedSymbol
1002
+ )
1003
+ DUNNING_FEES =
1004
+ T.let(
1005
+ :dunning_fees,
1006
+ Dodopayments::BalanceRetrieveLedgerParams::EventType::TaggedSymbol
1007
+ )
998
1008
 
999
1009
  sig do
1000
1010
  override.returns(