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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec47e5ed5d7a92edd6f7f61c24562362099dd5980fa2c2dc2293003799f91d59
4
- data.tar.gz: 112e0708dc5ff423e0e9b46c74476bf2d030a98f67faae94e2b62a7304e3f0e7
3
+ metadata.gz: a46369be5974fc63a5c3360d6ff1fbf05df006aae9f56f83d3f2a4060fa7c123
4
+ data.tar.gz: a07401727421cbbed6e6f3c5ee486f326ccd0f55889c356da32ff2a19356c6ed
5
5
  SHA512:
6
- metadata.gz: 392377d8410ada093c499f134ee47fd7b847066bf7b945754ef058620080c97ebceff5dedfc4fb2ecfa914831dd34b1c51f7d264993cf32c9590be628268a534
7
- data.tar.gz: 9b7cd6bfbae18f7963bda587ceae29ac0459f150b97a5160ddfcf9a8eba9bf5643cbe55483aaa471d42c2b69aa7ec82881b887140c53fad58f9aa34f818b321b
6
+ metadata.gz: b87d8a8386d005ae7a4f8f88a5d08da2e8de56b80ae57eee6ed2a74795d166d053c49f94b75572b7e55e8f9b871edb377d5a07db87d0ac49e9090fcac2cd23ba
7
+ data.tar.gz: 61c78491c070481b41902248fe513acfa8f0d3c6ac46ada81c6e4a7e396db0fea9a6e55b8e984e4ac9d7cb6e6ce3d1448716774f6d8f0e0a8db715d8d0ca3eaa
data/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.5.0 (2026-04-01)
4
+
5
+ Full Changelog: [v2.4.1...v2.5.0](https://github.com/dodopayments/dodopayments-ruby/compare/v2.4.1...v2.5.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** updated openapi spec to v1.93.0 ([108653e](https://github.com/dodopayments/dodopayments-ruby/commit/108653eb281d4b33283a7bc9bcaa7ce8434b077b))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * align path encoding with RFC 3986 section 3.3 ([c77867d](https://github.com/dodopayments/dodopayments-ruby/commit/c77867d2f7a352bc7f6ede137e629fa0d6a37808))
15
+ * variable name typo ([93ee38e](https://github.com/dodopayments/dodopayments-ruby/commit/93ee38e03c625a03d6c716c93bae44bdd9682272))
16
+
17
+
18
+ ### Chores
19
+
20
+ * **ci:** support opting out of skipping builds on metadata-only commits ([440f676](https://github.com/dodopayments/dodopayments-ruby/commit/440f6769cfae73ecd8414c50f35d724ca6c84ce0))
21
+ * **tests:** bump steady to v0.20.1 ([c0ca147](https://github.com/dodopayments/dodopayments-ruby/commit/c0ca147e996ceec20c39b2076153c6084048f9e6))
22
+ * **tests:** bump steady to v0.20.2 ([5d83036](https://github.com/dodopayments/dodopayments-ruby/commit/5d830369abcabf01109bdb3e9c21ea3c2aed894b))
23
+
3
24
  ## 2.4.1 (2026-03-27)
4
25
 
5
26
  Full Changelog: [v2.4.0...v2.4.1](https://github.com/dodopayments/dodopayments-ruby/compare/v2.4.0...v2.4.1)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "dodopayments", "~> 2.4.1"
29
+ gem "dodopayments", "~> 2.5.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -157,7 +157,7 @@ module Dodopayments
157
157
  in Hash | nil => coerced
158
158
  coerced
159
159
  else
160
- message = "Expected a #{Hash} or #{Dodopayments::Internal::Type::BaseModel}, got #{data.inspect}"
160
+ message = "Expected a #{Hash} or #{Dodopayments::Internal::Type::BaseModel}, got #{input.inspect}"
161
161
  raise ArgumentError.new(message)
162
162
  end
163
163
  end
@@ -237,6 +237,11 @@ module Dodopayments
237
237
  end
238
238
  end
239
239
 
240
+ # @type [Regexp]
241
+ #
242
+ # https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
243
+ RFC_3986_NOT_PCHARS = /[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/
244
+
240
245
  class << self
241
246
  # @api private
242
247
  #
@@ -247,6 +252,15 @@ module Dodopayments
247
252
  "#{uri.scheme}://#{uri.host}#{":#{uri.port}" unless uri.port == uri.default_port}"
248
253
  end
249
254
 
255
+ # @api private
256
+ #
257
+ # @param path [String, Integer]
258
+ #
259
+ # @return [String]
260
+ def encode_path(path)
261
+ path.to_s.gsub(Dodopayments::Internal::Util::RFC_3986_NOT_PCHARS) { ERB::Util.url_encode(_1) }
262
+ end
263
+
250
264
  # @api private
251
265
  #
252
266
  # @param path [String, Array<String>]
@@ -259,7 +273,7 @@ module Dodopayments
259
273
  in []
260
274
  ""
261
275
  in [String => p, *interpolations]
262
- encoded = interpolations.map { ERB::Util.url_encode(_1) }
276
+ encoded = interpolations.map { encode_path(_1) }
263
277
  format(p, *encoded)
264
278
  end
265
279
  end
@@ -576,10 +590,10 @@ module Dodopayments
576
590
 
577
591
  case val
578
592
  in Dodopayments::FilePart unless val.filename.nil?
579
- filename = ERB::Util.url_encode(val.filename)
593
+ filename = encode_path(val.filename)
580
594
  y << "; filename=\"#{filename}\""
581
595
  in Pathname | IO
582
- filename = ERB::Util.url_encode(::File.basename(val.to_path))
596
+ filename = encode_path(::File.basename(val.to_path))
583
597
  y << "; filename=\"#{filename}\""
584
598
  else
585
599
  end
@@ -0,0 +1,126 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class AbandonedCheckoutDetectedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
14
+ # events
15
+ #
16
+ # @return [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Data]
17
+ required :data, -> { Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data }
18
+
19
+ # @!attribute timestamp
20
+ # The timestamp of when the event occurred
21
+ #
22
+ # @return [Time]
23
+ required :timestamp, Time
24
+
25
+ # @!attribute type
26
+ # The event type
27
+ #
28
+ # @return [Symbol, Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Type]
29
+ required :type, enum: -> { Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Type }
30
+
31
+ # @!method initialize(business_id:, data:, timestamp:, type:)
32
+ # Some parameter documentations has been truncated, see
33
+ # {Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent} for more details.
34
+ #
35
+ # @param business_id [String] The business identifier
36
+ #
37
+ # @param data [Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Data] Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
38
+ #
39
+ # @param timestamp [Time] The timestamp of when the event occurred
40
+ #
41
+ # @param type [Symbol, Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Type] The event type
42
+
43
+ # @see Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent#data
44
+ class Data < Dodopayments::Internal::Type::BaseModel
45
+ # @!attribute abandoned_at
46
+ #
47
+ # @return [Time]
48
+ required :abandoned_at, Time
49
+
50
+ # @!attribute abandonment_reason
51
+ #
52
+ # @return [Symbol, Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason]
53
+ required :abandonment_reason,
54
+ enum: -> { Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason }
55
+
56
+ # @!attribute customer_id
57
+ #
58
+ # @return [String]
59
+ required :customer_id, String
60
+
61
+ # @!attribute payment_id
62
+ #
63
+ # @return [String]
64
+ required :payment_id, String
65
+
66
+ # @!attribute status
67
+ #
68
+ # @return [Symbol, Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Data::Status]
69
+ required :status, enum: -> { Dodopayments::AbandonedCheckoutDetectedWebhookEvent::Data::Status }
70
+
71
+ # @!attribute recovered_payment_id
72
+ #
73
+ # @return [String, nil]
74
+ optional :recovered_payment_id, String, nil?: true
75
+
76
+ # @!method initialize(abandoned_at:, abandonment_reason:, customer_id:, payment_id:, status:, recovered_payment_id: nil)
77
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
78
+ # events
79
+ #
80
+ # @param abandoned_at [Time]
81
+ # @param abandonment_reason [Symbol, Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Data::AbandonmentReason]
82
+ # @param customer_id [String]
83
+ # @param payment_id [String]
84
+ # @param status [Symbol, Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Data::Status]
85
+ # @param recovered_payment_id [String, nil]
86
+
87
+ # @see Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Data#abandonment_reason
88
+ module AbandonmentReason
89
+ extend Dodopayments::Internal::Type::Enum
90
+
91
+ PAYMENT_FAILED = :payment_failed
92
+ CHECKOUT_INCOMPLETE = :checkout_incomplete
93
+
94
+ # @!method self.values
95
+ # @return [Array<Symbol>]
96
+ end
97
+
98
+ # @see Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent::Data#status
99
+ module Status
100
+ extend Dodopayments::Internal::Type::Enum
101
+
102
+ ABANDONED = :abandoned
103
+ RECOVERING = :recovering
104
+ RECOVERED = :recovered
105
+ EXHAUSTED = :exhausted
106
+ OPTED_OUT = :opted_out
107
+
108
+ # @!method self.values
109
+ # @return [Array<Symbol>]
110
+ end
111
+ end
112
+
113
+ # The event type
114
+ #
115
+ # @see Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent#type
116
+ module Type
117
+ extend Dodopayments::Internal::Type::Enum
118
+
119
+ ABANDONED_CHECKOUT_DETECTED = :"abandoned_checkout.detected"
120
+
121
+ # @!method self.values
122
+ # @return [Array<Symbol>]
123
+ end
124
+ end
125
+ end
126
+ end
@@ -0,0 +1,126 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class AbandonedCheckoutRecoveredWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
14
+ # events
15
+ #
16
+ # @return [Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Data]
17
+ required :data, -> { Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data }
18
+
19
+ # @!attribute timestamp
20
+ # The timestamp of when the event occurred
21
+ #
22
+ # @return [Time]
23
+ required :timestamp, Time
24
+
25
+ # @!attribute type
26
+ # The event type
27
+ #
28
+ # @return [Symbol, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Type]
29
+ required :type, enum: -> { Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Type }
30
+
31
+ # @!method initialize(business_id:, data:, timestamp:, type:)
32
+ # Some parameter documentations has been truncated, see
33
+ # {Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent} for more details.
34
+ #
35
+ # @param business_id [String] The business identifier
36
+ #
37
+ # @param data [Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Data] Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
38
+ #
39
+ # @param timestamp [Time] The timestamp of when the event occurred
40
+ #
41
+ # @param type [Symbol, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Type] The event type
42
+
43
+ # @see Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent#data
44
+ class Data < Dodopayments::Internal::Type::BaseModel
45
+ # @!attribute abandoned_at
46
+ #
47
+ # @return [Time]
48
+ required :abandoned_at, Time
49
+
50
+ # @!attribute abandonment_reason
51
+ #
52
+ # @return [Symbol, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason]
53
+ required :abandonment_reason,
54
+ enum: -> { Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason }
55
+
56
+ # @!attribute customer_id
57
+ #
58
+ # @return [String]
59
+ required :customer_id, String
60
+
61
+ # @!attribute payment_id
62
+ #
63
+ # @return [String]
64
+ required :payment_id, String
65
+
66
+ # @!attribute status
67
+ #
68
+ # @return [Symbol, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Data::Status]
69
+ required :status, enum: -> { Dodopayments::AbandonedCheckoutRecoveredWebhookEvent::Data::Status }
70
+
71
+ # @!attribute recovered_payment_id
72
+ #
73
+ # @return [String, nil]
74
+ optional :recovered_payment_id, String, nil?: true
75
+
76
+ # @!method initialize(abandoned_at:, abandonment_reason:, customer_id:, payment_id:, status:, recovered_payment_id: nil)
77
+ # Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered
78
+ # events
79
+ #
80
+ # @param abandoned_at [Time]
81
+ # @param abandonment_reason [Symbol, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Data::AbandonmentReason]
82
+ # @param customer_id [String]
83
+ # @param payment_id [String]
84
+ # @param status [Symbol, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Data::Status]
85
+ # @param recovered_payment_id [String, nil]
86
+
87
+ # @see Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Data#abandonment_reason
88
+ module AbandonmentReason
89
+ extend Dodopayments::Internal::Type::Enum
90
+
91
+ PAYMENT_FAILED = :payment_failed
92
+ CHECKOUT_INCOMPLETE = :checkout_incomplete
93
+
94
+ # @!method self.values
95
+ # @return [Array<Symbol>]
96
+ end
97
+
98
+ # @see Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent::Data#status
99
+ module Status
100
+ extend Dodopayments::Internal::Type::Enum
101
+
102
+ ABANDONED = :abandoned
103
+ RECOVERING = :recovering
104
+ RECOVERED = :recovered
105
+ EXHAUSTED = :exhausted
106
+ OPTED_OUT = :opted_out
107
+
108
+ # @!method self.values
109
+ # @return [Array<Symbol>]
110
+ end
111
+ end
112
+
113
+ # The event type
114
+ #
115
+ # @see Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent#type
116
+ module Type
117
+ extend Dodopayments::Internal::Type::Enum
118
+
119
+ ABANDONED_CHECKOUT_RECOVERED = :"abandoned_checkout.recovered"
120
+
121
+ # @!method self.values
122
+ # @return [Array<Symbol>]
123
+ end
124
+ end
125
+ end
126
+ end
@@ -100,6 +100,8 @@ module Dodopayments
100
100
  DODO_CREDITS = :dodo_credits
101
101
  ADJUSTMENT = :adjustment
102
102
  CURRENCY_CONVERSION = :currency_conversion
103
+ ABANDONED_CART_RECOVERY_FEE = :abandoned_cart_recovery_fee
104
+ DUNNING_FEES = :dunning_fees
103
105
 
104
106
  # @!method self.values
105
107
  # @return [Array<Symbol>]
@@ -253,6 +253,8 @@ module Dodopayments
253
253
  DODO_CREDITS = :dodo_credits
254
254
  ADJUSTMENT = :adjustment
255
255
  CURRENCY_CONVERSION = :currency_conversion
256
+ ABANDONED_CART_RECOVERY_FEE = :abandoned_cart_recovery_fee
257
+ DUNNING_FEES = :dunning_fees
256
258
 
257
259
  # @!method self.values
258
260
  # @return [Array<Symbol>]
@@ -0,0 +1,118 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class DunningRecoveredWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Webhook payload for dunning.started and dunning.recovered events
14
+ #
15
+ # @return [Dodopayments::Models::DunningRecoveredWebhookEvent::Data]
16
+ required :data, -> { Dodopayments::DunningRecoveredWebhookEvent::Data }
17
+
18
+ # @!attribute timestamp
19
+ # The timestamp of when the event occurred
20
+ #
21
+ # @return [Time]
22
+ required :timestamp, Time
23
+
24
+ # @!attribute type
25
+ # The event type
26
+ #
27
+ # @return [Symbol, Dodopayments::Models::DunningRecoveredWebhookEvent::Type]
28
+ required :type, enum: -> { Dodopayments::DunningRecoveredWebhookEvent::Type }
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type:)
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::DunningRecoveredWebhookEvent::Data] Webhook payload for dunning.started and dunning.recovered events
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, Dodopayments::Models::DunningRecoveredWebhookEvent::Type] The event type
38
+
39
+ # @see Dodopayments::Models::DunningRecoveredWebhookEvent#data
40
+ class Data < Dodopayments::Internal::Type::BaseModel
41
+ # @!attribute created_at
42
+ #
43
+ # @return [Time]
44
+ required :created_at, Time
45
+
46
+ # @!attribute customer_id
47
+ #
48
+ # @return [String]
49
+ required :customer_id, String
50
+
51
+ # @!attribute status
52
+ #
53
+ # @return [Symbol, Dodopayments::Models::DunningRecoveredWebhookEvent::Data::Status]
54
+ required :status, enum: -> { Dodopayments::DunningRecoveredWebhookEvent::Data::Status }
55
+
56
+ # @!attribute subscription_id
57
+ #
58
+ # @return [String]
59
+ required :subscription_id, String
60
+
61
+ # @!attribute trigger_state
62
+ #
63
+ # @return [Symbol, Dodopayments::Models::DunningRecoveredWebhookEvent::Data::TriggerState]
64
+ required :trigger_state, enum: -> { Dodopayments::DunningRecoveredWebhookEvent::Data::TriggerState }
65
+
66
+ # @!attribute payment_id
67
+ #
68
+ # @return [String, nil]
69
+ optional :payment_id, String, nil?: true
70
+
71
+ # @!method initialize(created_at:, customer_id:, status:, subscription_id:, trigger_state:, payment_id: nil)
72
+ # Webhook payload for dunning.started and dunning.recovered events
73
+ #
74
+ # @param created_at [Time]
75
+ # @param customer_id [String]
76
+ # @param status [Symbol, Dodopayments::Models::DunningRecoveredWebhookEvent::Data::Status]
77
+ # @param subscription_id [String]
78
+ # @param trigger_state [Symbol, Dodopayments::Models::DunningRecoveredWebhookEvent::Data::TriggerState]
79
+ # @param payment_id [String, nil]
80
+
81
+ # @see Dodopayments::Models::DunningRecoveredWebhookEvent::Data#status
82
+ module Status
83
+ extend Dodopayments::Internal::Type::Enum
84
+
85
+ RECOVERING = :recovering
86
+ RECOVERED = :recovered
87
+ EXHAUSTED = :exhausted
88
+
89
+ # @!method self.values
90
+ # @return [Array<Symbol>]
91
+ end
92
+
93
+ # @see Dodopayments::Models::DunningRecoveredWebhookEvent::Data#trigger_state
94
+ module TriggerState
95
+ extend Dodopayments::Internal::Type::Enum
96
+
97
+ ON_HOLD = :on_hold
98
+ CANCELLED = :cancelled
99
+
100
+ # @!method self.values
101
+ # @return [Array<Symbol>]
102
+ end
103
+ end
104
+
105
+ # The event type
106
+ #
107
+ # @see Dodopayments::Models::DunningRecoveredWebhookEvent#type
108
+ module Type
109
+ extend Dodopayments::Internal::Type::Enum
110
+
111
+ DUNNING_RECOVERED = :"dunning.recovered"
112
+
113
+ # @!method self.values
114
+ # @return [Array<Symbol>]
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,118 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class DunningStartedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Webhook payload for dunning.started and dunning.recovered events
14
+ #
15
+ # @return [Dodopayments::Models::DunningStartedWebhookEvent::Data]
16
+ required :data, -> { Dodopayments::DunningStartedWebhookEvent::Data }
17
+
18
+ # @!attribute timestamp
19
+ # The timestamp of when the event occurred
20
+ #
21
+ # @return [Time]
22
+ required :timestamp, Time
23
+
24
+ # @!attribute type
25
+ # The event type
26
+ #
27
+ # @return [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Type]
28
+ required :type, enum: -> { Dodopayments::DunningStartedWebhookEvent::Type }
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type:)
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::DunningStartedWebhookEvent::Data] Webhook payload for dunning.started and dunning.recovered events
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Type] The event type
38
+
39
+ # @see Dodopayments::Models::DunningStartedWebhookEvent#data
40
+ class Data < Dodopayments::Internal::Type::BaseModel
41
+ # @!attribute created_at
42
+ #
43
+ # @return [Time]
44
+ required :created_at, Time
45
+
46
+ # @!attribute customer_id
47
+ #
48
+ # @return [String]
49
+ required :customer_id, String
50
+
51
+ # @!attribute status
52
+ #
53
+ # @return [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Data::Status]
54
+ required :status, enum: -> { Dodopayments::DunningStartedWebhookEvent::Data::Status }
55
+
56
+ # @!attribute subscription_id
57
+ #
58
+ # @return [String]
59
+ required :subscription_id, String
60
+
61
+ # @!attribute trigger_state
62
+ #
63
+ # @return [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Data::TriggerState]
64
+ required :trigger_state, enum: -> { Dodopayments::DunningStartedWebhookEvent::Data::TriggerState }
65
+
66
+ # @!attribute payment_id
67
+ #
68
+ # @return [String, nil]
69
+ optional :payment_id, String, nil?: true
70
+
71
+ # @!method initialize(created_at:, customer_id:, status:, subscription_id:, trigger_state:, payment_id: nil)
72
+ # Webhook payload for dunning.started and dunning.recovered events
73
+ #
74
+ # @param created_at [Time]
75
+ # @param customer_id [String]
76
+ # @param status [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Data::Status]
77
+ # @param subscription_id [String]
78
+ # @param trigger_state [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Data::TriggerState]
79
+ # @param payment_id [String, nil]
80
+
81
+ # @see Dodopayments::Models::DunningStartedWebhookEvent::Data#status
82
+ module Status
83
+ extend Dodopayments::Internal::Type::Enum
84
+
85
+ RECOVERING = :recovering
86
+ RECOVERED = :recovered
87
+ EXHAUSTED = :exhausted
88
+
89
+ # @!method self.values
90
+ # @return [Array<Symbol>]
91
+ end
92
+
93
+ # @see Dodopayments::Models::DunningStartedWebhookEvent::Data#trigger_state
94
+ module TriggerState
95
+ extend Dodopayments::Internal::Type::Enum
96
+
97
+ ON_HOLD = :on_hold
98
+ CANCELLED = :cancelled
99
+
100
+ # @!method self.values
101
+ # @return [Array<Symbol>]
102
+ end
103
+ end
104
+
105
+ # The event type
106
+ #
107
+ # @see Dodopayments::Models::DunningStartedWebhookEvent#type
108
+ module Type
109
+ extend Dodopayments::Internal::Type::Enum
110
+
111
+ DUNNING_STARTED = :"dunning.started"
112
+
113
+ # @!method self.values
114
+ # @return [Array<Symbol>]
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Payouts
6
+ module Breakup
7
+ # @see Dodopayments::Resources::Payouts::Breakup::Details#download_csv
8
+ class DetailDownloadCsvParams < Dodopayments::Internal::Type::BaseModel
9
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
10
+ include Dodopayments::Internal::Type::RequestParameters
11
+
12
+ # @!attribute payout_id
13
+ #
14
+ # @return [String]
15
+ required :payout_id, String
16
+
17
+ # @!method initialize(payout_id:, request_options: {})
18
+ # @param payout_id [String]
19
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Payouts
6
+ module Breakup
7
+ # @see Dodopayments::Resources::Payouts::Breakup::Details#list
8
+ class DetailListParams < Dodopayments::Internal::Type::BaseModel
9
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
10
+ include Dodopayments::Internal::Type::RequestParameters
11
+
12
+ # @!attribute payout_id
13
+ #
14
+ # @return [String]
15
+ required :payout_id, String
16
+
17
+ # @!attribute page_number
18
+ # Page number (0-indexed). Default: 0.
19
+ #
20
+ # @return [Integer, nil]
21
+ optional :page_number, Integer
22
+
23
+ # @!attribute page_size
24
+ # Number of items per page. Default: 10, Max: 100.
25
+ #
26
+ # @return [Integer, nil]
27
+ optional :page_size, Integer
28
+
29
+ # @!method initialize(payout_id:, page_number: nil, page_size: nil, request_options: {})
30
+ # @param payout_id [String]
31
+ #
32
+ # @param page_number [Integer] Page number (0-indexed). Default: 0.
33
+ #
34
+ # @param page_size [Integer] Number of items per page. Default: 10, Max: 100.
35
+ #
36
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end