dodopayments 2.4.1 → 2.6.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/README.md +1 -1
- data/lib/dodopayments/internal/util.rb +18 -4
- data/lib/dodopayments/models/abandoned_checkout_detected_webhook_event.rb +126 -0
- data/lib/dodopayments/models/abandoned_checkout_recovered_webhook_event.rb +126 -0
- data/lib/dodopayments/models/balance_ledger_entry.rb +2 -0
- data/lib/dodopayments/models/balance_retrieve_ledger_params.rb +2 -0
- data/lib/dodopayments/models/discount.rb +8 -1
- data/lib/dodopayments/models/discount_create_params.rb +9 -1
- data/lib/dodopayments/models/discount_update_params.rb +9 -1
- data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +118 -0
- data/lib/dodopayments/models/dunning_started_webhook_event.rb +118 -0
- data/lib/dodopayments/models/payouts/breakup/detail_download_csv_params.rb +24 -0
- data/lib/dodopayments/models/payouts/breakup/detail_list_params.rb +41 -0
- data/lib/dodopayments/models/payouts/breakup/detail_list_response.rb +94 -0
- data/lib/dodopayments/models/payouts/breakup_retrieve_params.rb +22 -0
- data/lib/dodopayments/models/payouts/breakup_retrieve_response.rb +37 -0
- data/lib/dodopayments/models/subscription_update_params.rb +19 -1
- data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +9 -1
- data/lib/dodopayments/models/unwrap_webhook_event.rb +9 -1
- data/lib/dodopayments/models/webhook_event_type.rb +6 -0
- data/lib/dodopayments/models/webhook_payload.rb +168 -3
- data/lib/dodopayments/models.rb +10 -0
- data/lib/dodopayments/resources/discounts.rb +6 -2
- data/lib/dodopayments/resources/payouts/breakup/details.rb +72 -0
- data/lib/dodopayments/resources/payouts/breakup.rb +43 -0
- data/lib/dodopayments/resources/payouts.rb +4 -0
- data/lib/dodopayments/resources/subscriptions.rb +3 -1
- data/lib/dodopayments/resources/webhooks.rb +2 -2
- data/lib/dodopayments/version.rb +1 -1
- data/lib/dodopayments.rb +11 -0
- data/rbi/dodopayments/internal/util.rbi +8 -0
- data/rbi/dodopayments/models/abandoned_checkout_detected_webhook_event.rbi +271 -0
- data/rbi/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbi +273 -0
- data/rbi/dodopayments/models/balance_ledger_entry.rbi +10 -0
- data/rbi/dodopayments/models/balance_retrieve_ledger_params.rbi +10 -0
- data/rbi/dodopayments/models/discount.rbi +6 -0
- data/rbi/dodopayments/models/discount_create_params.rbi +11 -0
- data/rbi/dodopayments/models/discount_update_params.rbi +8 -0
- data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +249 -0
- data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +249 -0
- data/rbi/dodopayments/models/payouts/breakup/detail_download_csv_params.rbi +45 -0
- data/rbi/dodopayments/models/payouts/breakup/detail_list_params.rbi +70 -0
- data/rbi/dodopayments/models/payouts/breakup/detail_list_response.rbi +116 -0
- data/rbi/dodopayments/models/payouts/breakup_retrieve_params.rbi +40 -0
- data/rbi/dodopayments/models/payouts/breakup_retrieve_response.rbi +53 -0
- data/rbi/dodopayments/models/subscription_update_params.rbi +54 -0
- data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +4 -0
- data/rbi/dodopayments/models/unwrap_webhook_event.rbi +4 -0
- data/rbi/dodopayments/models/webhook_event_type.rbi +21 -0
- data/rbi/dodopayments/models/webhook_payload.rbi +400 -4
- data/rbi/dodopayments/models.rbi +13 -0
- data/rbi/dodopayments/resources/discounts.rbi +6 -0
- data/rbi/dodopayments/resources/payouts/breakup/details.rbi +60 -0
- data/rbi/dodopayments/resources/payouts/breakup.rbi +36 -0
- data/rbi/dodopayments/resources/payouts.rbi +3 -0
- data/rbi/dodopayments/resources/subscriptions.rbi +5 -0
- data/rbi/dodopayments/resources/webhooks.rbi +8 -0
- data/sig/dodopayments/internal/util.rbs +4 -0
- data/sig/dodopayments/models/abandoned_checkout_detected_webhook_event.rbs +113 -0
- data/sig/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbs +113 -0
- data/sig/dodopayments/models/balance_ledger_entry.rbs +4 -0
- data/sig/dodopayments/models/balance_retrieve_ledger_params.rbs +4 -0
- data/sig/dodopayments/models/discount.rbs +5 -0
- data/sig/dodopayments/models/discount_create_params.rbs +7 -0
- data/sig/dodopayments/models/discount_update_params.rbs +5 -0
- data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +110 -0
- data/sig/dodopayments/models/dunning_started_webhook_event.rbs +110 -0
- data/sig/dodopayments/models/payouts/breakup/detail_download_csv_params.rbs +28 -0
- data/sig/dodopayments/models/payouts/breakup/detail_list_params.rbs +40 -0
- data/sig/dodopayments/models/payouts/breakup/detail_list_response.rbs +64 -0
- data/sig/dodopayments/models/payouts/breakup_retrieve_params.rbs +25 -0
- data/sig/dodopayments/models/payouts/breakup_retrieve_response.rbs +23 -0
- data/sig/dodopayments/models/subscription_update_params.rbs +20 -0
- data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +5 -1
- data/sig/dodopayments/models/unwrap_webhook_event.rbs +5 -1
- data/sig/dodopayments/models/webhook_event_type.rbs +12 -0
- data/sig/dodopayments/models/webhook_payload.rbs +165 -0
- data/sig/dodopayments/models.rbs +10 -0
- data/sig/dodopayments/resources/discounts.rbs +2 -0
- data/sig/dodopayments/resources/payouts/breakup/details.rbs +23 -0
- data/sig/dodopayments/resources/payouts/breakup.rbs +16 -0
- data/sig/dodopayments/resources/payouts.rbs +2 -0
- data/sig/dodopayments/resources/subscriptions.rbs +1 -0
- data/sig/dodopayments/resources/webhooks.rbs +10 -2
- metadata +35 -2
|
@@ -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(
|
|
@@ -32,6 +32,9 @@ module Dodopayments
|
|
|
32
32
|
sig { returns(String) }
|
|
33
33
|
attr_accessor :discount_id
|
|
34
34
|
|
|
35
|
+
sig { returns(T::Hash[Symbol, String]) }
|
|
36
|
+
attr_accessor :metadata
|
|
37
|
+
|
|
35
38
|
# Whether this discount should be preserved when a subscription changes plans.
|
|
36
39
|
# Default: false (discount is removed on plan change)
|
|
37
40
|
sig { returns(T::Boolean) }
|
|
@@ -74,6 +77,7 @@ module Dodopayments
|
|
|
74
77
|
code: String,
|
|
75
78
|
created_at: Time,
|
|
76
79
|
discount_id: String,
|
|
80
|
+
metadata: T::Hash[Symbol, String],
|
|
77
81
|
preserve_on_plan_change: T::Boolean,
|
|
78
82
|
restricted_to: T::Array[String],
|
|
79
83
|
times_used: Integer,
|
|
@@ -99,6 +103,7 @@ module Dodopayments
|
|
|
99
103
|
created_at:,
|
|
100
104
|
# The unique discount ID
|
|
101
105
|
discount_id:,
|
|
106
|
+
metadata:,
|
|
102
107
|
# Whether this discount should be preserved when a subscription changes plans.
|
|
103
108
|
# Default: false (discount is removed on plan change)
|
|
104
109
|
preserve_on_plan_change:,
|
|
@@ -129,6 +134,7 @@ module Dodopayments
|
|
|
129
134
|
code: String,
|
|
130
135
|
created_at: Time,
|
|
131
136
|
discount_id: String,
|
|
137
|
+
metadata: T::Hash[Symbol, String],
|
|
132
138
|
preserve_on_plan_change: T::Boolean,
|
|
133
139
|
restricted_to: T::Array[String],
|
|
134
140
|
times_used: Integer,
|
|
@@ -40,6 +40,13 @@ module Dodopayments
|
|
|
40
40
|
sig { returns(T.nilable(Time)) }
|
|
41
41
|
attr_accessor :expires_at
|
|
42
42
|
|
|
43
|
+
# Additional metadata for the discount
|
|
44
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
45
|
+
attr_reader :metadata
|
|
46
|
+
|
|
47
|
+
sig { params(metadata: T::Hash[Symbol, String]).void }
|
|
48
|
+
attr_writer :metadata
|
|
49
|
+
|
|
43
50
|
sig { returns(T.nilable(String)) }
|
|
44
51
|
attr_accessor :name
|
|
45
52
|
|
|
@@ -71,6 +78,7 @@ module Dodopayments
|
|
|
71
78
|
type: Dodopayments::DiscountType::OrSymbol,
|
|
72
79
|
code: T.nilable(String),
|
|
73
80
|
expires_at: T.nilable(Time),
|
|
81
|
+
metadata: T::Hash[Symbol, String],
|
|
74
82
|
name: T.nilable(String),
|
|
75
83
|
preserve_on_plan_change: T::Boolean,
|
|
76
84
|
restricted_to: T.nilable(T::Array[String]),
|
|
@@ -98,6 +106,8 @@ module Dodopayments
|
|
|
98
106
|
code: nil,
|
|
99
107
|
# When the discount expires, if ever.
|
|
100
108
|
expires_at: nil,
|
|
109
|
+
# Additional metadata for the discount
|
|
110
|
+
metadata: nil,
|
|
101
111
|
name: nil,
|
|
102
112
|
# Whether this discount should be preserved when a subscription changes plans.
|
|
103
113
|
# Default: false (discount is removed on plan change)
|
|
@@ -121,6 +131,7 @@ module Dodopayments
|
|
|
121
131
|
type: Dodopayments::DiscountType::OrSymbol,
|
|
122
132
|
code: T.nilable(String),
|
|
123
133
|
expires_at: T.nilable(Time),
|
|
134
|
+
metadata: T::Hash[Symbol, String],
|
|
124
135
|
name: T.nilable(String),
|
|
125
136
|
preserve_on_plan_change: T::Boolean,
|
|
126
137
|
restricted_to: T.nilable(T::Array[String]),
|
|
@@ -34,6 +34,10 @@ module Dodopayments
|
|
|
34
34
|
sig { returns(T.nilable(Time)) }
|
|
35
35
|
attr_accessor :expires_at
|
|
36
36
|
|
|
37
|
+
# Additional metadata for the discount
|
|
38
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
39
|
+
attr_accessor :metadata
|
|
40
|
+
|
|
37
41
|
sig { returns(T.nilable(String)) }
|
|
38
42
|
attr_accessor :name
|
|
39
43
|
|
|
@@ -66,6 +70,7 @@ module Dodopayments
|
|
|
66
70
|
amount: T.nilable(Integer),
|
|
67
71
|
code: T.nilable(String),
|
|
68
72
|
expires_at: T.nilable(Time),
|
|
73
|
+
metadata: T.nilable(T::Hash[Symbol, String]),
|
|
69
74
|
name: T.nilable(String),
|
|
70
75
|
preserve_on_plan_change: T.nilable(T::Boolean),
|
|
71
76
|
restricted_to: T.nilable(T::Array[String]),
|
|
@@ -88,6 +93,8 @@ module Dodopayments
|
|
|
88
93
|
# If present, update the discount code (uppercase).
|
|
89
94
|
code: nil,
|
|
90
95
|
expires_at: nil,
|
|
96
|
+
# Additional metadata for the discount
|
|
97
|
+
metadata: nil,
|
|
91
98
|
name: nil,
|
|
92
99
|
# Whether this discount should be preserved when a subscription changes plans. If
|
|
93
100
|
# not provided, the existing value is kept.
|
|
@@ -113,6 +120,7 @@ module Dodopayments
|
|
|
113
120
|
amount: T.nilable(Integer),
|
|
114
121
|
code: T.nilable(String),
|
|
115
122
|
expires_at: T.nilable(Time),
|
|
123
|
+
metadata: T.nilable(T::Hash[Symbol, String]),
|
|
116
124
|
name: T.nilable(String),
|
|
117
125
|
preserve_on_plan_change: T.nilable(T::Boolean),
|
|
118
126
|
restricted_to: T.nilable(T::Array[String]),
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Dodopayments
|
|
4
|
+
module Models
|
|
5
|
+
class DunningRecoveredWebhookEvent < Dodopayments::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Dodopayments::DunningRecoveredWebhookEvent,
|
|
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 dunning.started and dunning.recovered events
|
|
19
|
+
sig { returns(Dodopayments::DunningRecoveredWebhookEvent::Data) }
|
|
20
|
+
attr_reader :data
|
|
21
|
+
|
|
22
|
+
sig do
|
|
23
|
+
params(
|
|
24
|
+
data: Dodopayments::DunningRecoveredWebhookEvent::Data::OrHash
|
|
25
|
+
).void
|
|
26
|
+
end
|
|
27
|
+
attr_writer :data
|
|
28
|
+
|
|
29
|
+
# The timestamp of when the event occurred
|
|
30
|
+
sig { returns(Time) }
|
|
31
|
+
attr_accessor :timestamp
|
|
32
|
+
|
|
33
|
+
# The event type
|
|
34
|
+
sig do
|
|
35
|
+
returns(Dodopayments::DunningRecoveredWebhookEvent::Type::TaggedSymbol)
|
|
36
|
+
end
|
|
37
|
+
attr_accessor :type
|
|
38
|
+
|
|
39
|
+
sig do
|
|
40
|
+
params(
|
|
41
|
+
business_id: String,
|
|
42
|
+
data: Dodopayments::DunningRecoveredWebhookEvent::Data::OrHash,
|
|
43
|
+
timestamp: Time,
|
|
44
|
+
type: Dodopayments::DunningRecoveredWebhookEvent::Type::OrSymbol
|
|
45
|
+
).returns(T.attached_class)
|
|
46
|
+
end
|
|
47
|
+
def self.new(
|
|
48
|
+
# The business identifier
|
|
49
|
+
business_id:,
|
|
50
|
+
# Webhook payload for dunning.started and dunning.recovered events
|
|
51
|
+
data:,
|
|
52
|
+
# The timestamp of when the event occurred
|
|
53
|
+
timestamp:,
|
|
54
|
+
# The event type
|
|
55
|
+
type:
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
sig do
|
|
60
|
+
override.returns(
|
|
61
|
+
{
|
|
62
|
+
business_id: String,
|
|
63
|
+
data: Dodopayments::DunningRecoveredWebhookEvent::Data,
|
|
64
|
+
timestamp: Time,
|
|
65
|
+
type: Dodopayments::DunningRecoveredWebhookEvent::Type::TaggedSymbol
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
end
|
|
69
|
+
def to_hash
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
class Data < Dodopayments::Internal::Type::BaseModel
|
|
73
|
+
OrHash =
|
|
74
|
+
T.type_alias do
|
|
75
|
+
T.any(
|
|
76
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data,
|
|
77
|
+
Dodopayments::Internal::AnyHash
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
sig { returns(Time) }
|
|
82
|
+
attr_accessor :created_at
|
|
83
|
+
|
|
84
|
+
sig { returns(String) }
|
|
85
|
+
attr_accessor :customer_id
|
|
86
|
+
|
|
87
|
+
sig do
|
|
88
|
+
returns(
|
|
89
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::Status::TaggedSymbol
|
|
90
|
+
)
|
|
91
|
+
end
|
|
92
|
+
attr_accessor :status
|
|
93
|
+
|
|
94
|
+
sig { returns(String) }
|
|
95
|
+
attr_accessor :subscription_id
|
|
96
|
+
|
|
97
|
+
sig do
|
|
98
|
+
returns(
|
|
99
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::TriggerState::TaggedSymbol
|
|
100
|
+
)
|
|
101
|
+
end
|
|
102
|
+
attr_accessor :trigger_state
|
|
103
|
+
|
|
104
|
+
sig { returns(T.nilable(String)) }
|
|
105
|
+
attr_accessor :payment_id
|
|
106
|
+
|
|
107
|
+
# Webhook payload for dunning.started and dunning.recovered events
|
|
108
|
+
sig do
|
|
109
|
+
params(
|
|
110
|
+
created_at: Time,
|
|
111
|
+
customer_id: String,
|
|
112
|
+
status:
|
|
113
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::Status::OrSymbol,
|
|
114
|
+
subscription_id: String,
|
|
115
|
+
trigger_state:
|
|
116
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::TriggerState::OrSymbol,
|
|
117
|
+
payment_id: T.nilable(String)
|
|
118
|
+
).returns(T.attached_class)
|
|
119
|
+
end
|
|
120
|
+
def self.new(
|
|
121
|
+
created_at:,
|
|
122
|
+
customer_id:,
|
|
123
|
+
status:,
|
|
124
|
+
subscription_id:,
|
|
125
|
+
trigger_state:,
|
|
126
|
+
payment_id: nil
|
|
127
|
+
)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
sig do
|
|
131
|
+
override.returns(
|
|
132
|
+
{
|
|
133
|
+
created_at: Time,
|
|
134
|
+
customer_id: String,
|
|
135
|
+
status:
|
|
136
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::Status::TaggedSymbol,
|
|
137
|
+
subscription_id: String,
|
|
138
|
+
trigger_state:
|
|
139
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::TriggerState::TaggedSymbol,
|
|
140
|
+
payment_id: T.nilable(String)
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
end
|
|
144
|
+
def to_hash
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
module Status
|
|
148
|
+
extend Dodopayments::Internal::Type::Enum
|
|
149
|
+
|
|
150
|
+
TaggedSymbol =
|
|
151
|
+
T.type_alias do
|
|
152
|
+
T.all(
|
|
153
|
+
Symbol,
|
|
154
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::Status
|
|
155
|
+
)
|
|
156
|
+
end
|
|
157
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
158
|
+
|
|
159
|
+
RECOVERING =
|
|
160
|
+
T.let(
|
|
161
|
+
:recovering,
|
|
162
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::Status::TaggedSymbol
|
|
163
|
+
)
|
|
164
|
+
RECOVERED =
|
|
165
|
+
T.let(
|
|
166
|
+
:recovered,
|
|
167
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::Status::TaggedSymbol
|
|
168
|
+
)
|
|
169
|
+
EXHAUSTED =
|
|
170
|
+
T.let(
|
|
171
|
+
:exhausted,
|
|
172
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::Status::TaggedSymbol
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
sig do
|
|
176
|
+
override.returns(
|
|
177
|
+
T::Array[
|
|
178
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::Status::TaggedSymbol
|
|
179
|
+
]
|
|
180
|
+
)
|
|
181
|
+
end
|
|
182
|
+
def self.values
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
module TriggerState
|
|
187
|
+
extend Dodopayments::Internal::Type::Enum
|
|
188
|
+
|
|
189
|
+
TaggedSymbol =
|
|
190
|
+
T.type_alias do
|
|
191
|
+
T.all(
|
|
192
|
+
Symbol,
|
|
193
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::TriggerState
|
|
194
|
+
)
|
|
195
|
+
end
|
|
196
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
197
|
+
|
|
198
|
+
ON_HOLD =
|
|
199
|
+
T.let(
|
|
200
|
+
:on_hold,
|
|
201
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::TriggerState::TaggedSymbol
|
|
202
|
+
)
|
|
203
|
+
CANCELLED =
|
|
204
|
+
T.let(
|
|
205
|
+
:cancelled,
|
|
206
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::TriggerState::TaggedSymbol
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
sig do
|
|
210
|
+
override.returns(
|
|
211
|
+
T::Array[
|
|
212
|
+
Dodopayments::DunningRecoveredWebhookEvent::Data::TriggerState::TaggedSymbol
|
|
213
|
+
]
|
|
214
|
+
)
|
|
215
|
+
end
|
|
216
|
+
def self.values
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
# The event type
|
|
222
|
+
module Type
|
|
223
|
+
extend Dodopayments::Internal::Type::Enum
|
|
224
|
+
|
|
225
|
+
TaggedSymbol =
|
|
226
|
+
T.type_alias do
|
|
227
|
+
T.all(Symbol, Dodopayments::DunningRecoveredWebhookEvent::Type)
|
|
228
|
+
end
|
|
229
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
230
|
+
|
|
231
|
+
DUNNING_RECOVERED =
|
|
232
|
+
T.let(
|
|
233
|
+
:"dunning.recovered",
|
|
234
|
+
Dodopayments::DunningRecoveredWebhookEvent::Type::TaggedSymbol
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
sig do
|
|
238
|
+
override.returns(
|
|
239
|
+
T::Array[
|
|
240
|
+
Dodopayments::DunningRecoveredWebhookEvent::Type::TaggedSymbol
|
|
241
|
+
]
|
|
242
|
+
)
|
|
243
|
+
end
|
|
244
|
+
def self.values
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
end
|
|
248
|
+
end
|
|
249
|
+
end
|