dodopayments 1.71.1 → 1.74.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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/models/checkout_session_preview_params.rb +14 -0
  5. data/lib/dodopayments/models/checkout_session_preview_response.rb +426 -0
  6. data/lib/dodopayments/models/checkout_session_request.rb +94 -1
  7. data/lib/dodopayments/models/customer_list_params.rb +25 -1
  8. data/lib/dodopayments/models/discount_list_params.rb +33 -1
  9. data/lib/dodopayments/models/discount_retrieve_by_code_params.rb +14 -0
  10. data/lib/dodopayments/models/license_key_list_params.rb +17 -1
  11. data/lib/dodopayments/models/payment.rb +40 -1
  12. data/lib/dodopayments/models/payment_list_response.rb +28 -1
  13. data/lib/dodopayments/models/payment_method_types.rb +13 -98
  14. data/lib/dodopayments/models/product.rb +9 -1
  15. data/lib/dodopayments/models/subscription.rb +32 -1
  16. data/lib/dodopayments/models/subscription_change_plan_params.rb +10 -1
  17. data/lib/dodopayments/models/subscription_list_response.rb +9 -1
  18. data/lib/dodopayments/models/subscription_preview_change_plan_params.rb +10 -1
  19. data/lib/dodopayments/models.rb +4 -0
  20. data/lib/dodopayments/resources/checkout_sessions.rb +64 -1
  21. data/lib/dodopayments/resources/customers.rb +7 -1
  22. data/lib/dodopayments/resources/discounts.rb +31 -1
  23. data/lib/dodopayments/resources/license_keys.rb +5 -1
  24. data/lib/dodopayments/resources/subscriptions.rb +6 -2
  25. data/lib/dodopayments/version.rb +1 -1
  26. data/lib/dodopayments.rb +3 -0
  27. data/rbi/dodopayments/models/checkout_session_preview_params.rbi +32 -0
  28. data/rbi/dodopayments/models/checkout_session_preview_response.rbi +616 -0
  29. data/rbi/dodopayments/models/checkout_session_request.rbi +183 -0
  30. data/rbi/dodopayments/models/customer_list_params.rbi +33 -0
  31. data/rbi/dodopayments/models/discount_list_params.rbi +44 -0
  32. data/rbi/dodopayments/models/discount_retrieve_by_code_params.rbi +32 -0
  33. data/rbi/dodopayments/models/license_key_list_params.rbi +22 -0
  34. data/rbi/dodopayments/models/payment.rbi +54 -0
  35. data/rbi/dodopayments/models/payment_list_response.rbi +16 -0
  36. data/rbi/dodopayments/models/payment_method_types.rbi +18 -186
  37. data/rbi/dodopayments/models/product.rbi +11 -3
  38. data/rbi/dodopayments/models/subscription.rbi +50 -0
  39. data/rbi/dodopayments/models/subscription_change_plan_params.rbi +10 -0
  40. data/rbi/dodopayments/models/subscription_list_response.rbi +8 -0
  41. data/rbi/dodopayments/models/subscription_preview_change_plan_params.rbi +10 -0
  42. data/rbi/dodopayments/models.rbi +6 -0
  43. data/rbi/dodopayments/resources/checkout_sessions.rbi +104 -0
  44. data/rbi/dodopayments/resources/customers.rbi +9 -0
  45. data/rbi/dodopayments/resources/discounts.rbi +28 -0
  46. data/rbi/dodopayments/resources/license_keys.rbi +6 -0
  47. data/rbi/dodopayments/resources/subscriptions.rbi +8 -0
  48. data/sig/dodopayments/models/checkout_session_preview_params.rbs +15 -0
  49. data/sig/dodopayments/models/checkout_session_preview_response.rbs +330 -0
  50. data/sig/dodopayments/models/checkout_session_request.rbs +81 -0
  51. data/sig/dodopayments/models/customer_list_params.rbs +26 -1
  52. data/sig/dodopayments/models/discount_list_params.rbs +34 -1
  53. data/sig/dodopayments/models/discount_retrieve_by_code_params.rbs +15 -0
  54. data/sig/dodopayments/models/license_key_list_params.rbs +14 -0
  55. data/sig/dodopayments/models/payment.rbs +22 -0
  56. data/sig/dodopayments/models/payment_list_response.rbs +10 -0
  57. data/sig/dodopayments/models/payment_method_types.rbs +26 -196
  58. data/sig/dodopayments/models/product.rbs +8 -3
  59. data/sig/dodopayments/models/subscription.rbs +17 -0
  60. data/sig/dodopayments/models/subscription_change_plan_params.rbs +6 -1
  61. data/sig/dodopayments/models/subscription_list_response.rbs +5 -0
  62. data/sig/dodopayments/models/subscription_preview_change_plan_params.rbs +6 -1
  63. data/sig/dodopayments/models.rbs +4 -0
  64. data/sig/dodopayments/resources/checkout_sessions.rbs +25 -0
  65. data/sig/dodopayments/resources/customers.rbs +3 -0
  66. data/sig/dodopayments/resources/discounts.rbs +9 -0
  67. data/sig/dodopayments/resources/license_keys.rbs +2 -0
  68. data/sig/dodopayments/resources/subscriptions.rbs +2 -0
  69. metadata +11 -2
@@ -106,12 +106,20 @@ module Dodopayments
106
106
 
107
107
  # GET /discounts
108
108
  #
109
- # @overload list(page_number: nil, page_size: nil, request_options: {})
109
+ # @overload list(active: nil, code: nil, discount_type: nil, page_number: nil, page_size: nil, product_id: nil, request_options: {})
110
+ #
111
+ # @param active [Boolean] Filter by active status (true = not expired, false = expired)
112
+ #
113
+ # @param code [String] Filter by discount code (partial match, case-insensitive)
114
+ #
115
+ # @param discount_type [Symbol, Dodopayments::Models::DiscountType] Filter by discount type (percentage)
110
116
  #
111
117
  # @param page_number [Integer] Page number (default = 0).
112
118
  #
113
119
  # @param page_size [Integer] Page size (default = 10, max = 100).
114
120
  #
121
+ # @param product_id [String] Filter by product restriction (only discounts that apply to this product)
122
+ #
115
123
  # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
116
124
  #
117
125
  # @return [Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::Discount>]
@@ -149,6 +157,28 @@ module Dodopayments
149
157
  )
150
158
  end
151
159
 
160
+ # Validate and fetch a discount by its code name (e.g., "SAVE20"). This allows
161
+ # real-time validation directly against the API using the human-readable discount
162
+ # code instead of requiring the internal discount_id.
163
+ #
164
+ # @overload retrieve_by_code(code, request_options: {})
165
+ #
166
+ # @param code [String] The discount code (e.g., 'SAVE20')
167
+ #
168
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
169
+ #
170
+ # @return [Dodopayments::Models::Discount]
171
+ #
172
+ # @see Dodopayments::Models::DiscountRetrieveByCodeParams
173
+ def retrieve_by_code(code, params = {})
174
+ @client.request(
175
+ method: :get,
176
+ path: ["discounts/code/%1$s", code],
177
+ model: Dodopayments::Discount,
178
+ options: params[:request_options]
179
+ )
180
+ end
181
+
152
182
  # @api private
153
183
  #
154
184
  # @param client [Dodopayments::Client]
@@ -50,7 +50,11 @@ module Dodopayments
50
50
  )
51
51
  end
52
52
 
53
- # @overload list(customer_id: nil, page_number: nil, page_size: nil, product_id: nil, status: nil, request_options: {})
53
+ # @overload list(created_at_gte: nil, created_at_lte: nil, customer_id: nil, page_number: nil, page_size: nil, product_id: nil, status: nil, request_options: {})
54
+ #
55
+ # @param created_at_gte [Time] Filter license keys created on or after this timestamp
56
+ #
57
+ # @param created_at_lte [Time] Filter license keys created on or before this timestamp
54
58
  #
55
59
  # @param customer_id [String] Filter by customer ID
56
60
  #
@@ -156,7 +156,7 @@ module Dodopayments
156
156
  # Some parameter documentations has been truncated, see
157
157
  # {Dodopayments::Models::SubscriptionChangePlanParams} for more details.
158
158
  #
159
- # @overload change_plan(subscription_id, product_id:, proration_billing_mode:, quantity:, addons: nil, request_options: {})
159
+ # @overload change_plan(subscription_id, product_id:, proration_billing_mode:, quantity:, addons: nil, metadata: nil, request_options: {})
160
160
  #
161
161
  # @param subscription_id [String] Subscription Id
162
162
  #
@@ -168,6 +168,8 @@ module Dodopayments
168
168
  #
169
169
  # @param addons [Array<Dodopayments::Models::AttachAddon>, nil] Addons for the new plan.
170
170
  #
171
+ # @param metadata [Hash{Symbol=>String}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
172
+ #
171
173
  # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
172
174
  #
173
175
  # @return [nil]
@@ -222,7 +224,7 @@ module Dodopayments
222
224
  # Some parameter documentations has been truncated, see
223
225
  # {Dodopayments::Models::SubscriptionPreviewChangePlanParams} for more details.
224
226
  #
225
- # @overload preview_change_plan(subscription_id, product_id:, proration_billing_mode:, quantity:, addons: nil, request_options: {})
227
+ # @overload preview_change_plan(subscription_id, product_id:, proration_billing_mode:, quantity:, addons: nil, metadata: nil, request_options: {})
226
228
  #
227
229
  # @param subscription_id [String] Subscription Id
228
230
  #
@@ -234,6 +236,8 @@ module Dodopayments
234
236
  #
235
237
  # @param addons [Array<Dodopayments::Models::AttachAddon>, nil] Addons for the new plan.
236
238
  #
239
+ # @param metadata [Hash{Symbol=>String}, nil] Metadata for the payment. If not passed, the metadata of the subscription will b
240
+ #
237
241
  # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}, nil]
238
242
  #
239
243
  # @return [Dodopayments::Models::SubscriptionPreviewChangePlanResponse]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dodopayments
4
- VERSION = "1.71.1"
4
+ VERSION = "1.74.0"
5
5
  end
data/lib/dodopayments.rb CHANGED
@@ -81,6 +81,8 @@ require_relative "dodopayments/models/brand_update_images_params"
81
81
  require_relative "dodopayments/models/brand_update_images_response"
82
82
  require_relative "dodopayments/models/brand_update_params"
83
83
  require_relative "dodopayments/models/checkout_session_create_params"
84
+ require_relative "dodopayments/models/checkout_session_preview_params"
85
+ require_relative "dodopayments/models/checkout_session_preview_response"
84
86
  require_relative "dodopayments/models/checkout_session_response"
85
87
  require_relative "dodopayments/models/checkout_session_retrieve_params"
86
88
  require_relative "dodopayments/models/checkout_session_status"
@@ -108,6 +110,7 @@ require_relative "dodopayments/models/discount"
108
110
  require_relative "dodopayments/models/discount_create_params"
109
111
  require_relative "dodopayments/models/discount_delete_params"
110
112
  require_relative "dodopayments/models/discount_list_params"
113
+ require_relative "dodopayments/models/discount_retrieve_by_code_params"
111
114
  require_relative "dodopayments/models/discount_retrieve_params"
112
115
  require_relative "dodopayments/models/discount_type"
113
116
  require_relative "dodopayments/models/discount_update_params"
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class CheckoutSessionPreviewParams < Dodopayments::Models::CheckoutSessionRequest
6
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
7
+ include Dodopayments::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Dodopayments::CheckoutSessionPreviewParams,
13
+ Dodopayments::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig do
18
+ params(request_options: Dodopayments::RequestOptions::OrHash).returns(
19
+ T.attached_class
20
+ )
21
+ end
22
+ def self.new(request_options: {})
23
+ end
24
+
25
+ sig do
26
+ override.returns({ request_options: Dodopayments::RequestOptions })
27
+ end
28
+ def to_hash
29
+ end
30
+ end
31
+ end
32
+ end