solifyn 1.0.5 → 1.0.7

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 (124) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +202 -0
  3. data/README.md +6 -10
  4. data/docs/AffiliateApi.md +845 -0
  5. data/docs/BillingApi.md +68 -0
  6. data/docs/BrandsApi.md +286 -0
  7. data/docs/Business.md +56 -0
  8. data/docs/BusinessCreate.md +18 -0
  9. data/docs/BusinessFullCreate.md +26 -0
  10. data/docs/BusinessFullCreateResponse.md +20 -0
  11. data/docs/BusinessesApi.md +350 -0
  12. data/docs/ChatApi.md +246 -0
  13. data/docs/CollectionProductDto.md +0 -6
  14. data/docs/CommunityApi.md +497 -0
  15. data/docs/DefaultApi.md +0 -284
  16. data/docs/EntitlementGrantResponseDto.md +0 -8
  17. data/docs/PartnerApi.md +125 -0
  18. data/docs/PayoutAccessToken.md +20 -0
  19. data/docs/PayoutAccount.md +22 -0
  20. data/docs/PayoutAccountLink.md +20 -0
  21. data/docs/PayoutMethod.md +24 -0
  22. data/docs/PayoutMethodList.md +18 -0
  23. data/docs/PayoutVerification.md +24 -0
  24. data/docs/PayoutVerificationList.md +18 -0
  25. data/docs/PayoutsApi.md +579 -0
  26. data/docs/Product.md +0 -6
  27. data/docs/ProductCreate.md +0 -6
  28. data/docs/ProductUpdate.md +0 -6
  29. data/docs/TicketApi.md +318 -0
  30. data/docs/UserPage.md +26 -0
  31. data/docs/UserProfileThemesApi.md +345 -0
  32. data/docs/UserSettings.md +34 -0
  33. data/docs/UserSettingsUpdate.md +76 -0
  34. data/docs/UserStats.md +20 -0
  35. data/docs/UserTheme.md +26 -0
  36. data/docs/UserThemeUpdate.md +22 -0
  37. data/docs/WhopApiKeysRotation.md +18 -0
  38. data/docs/Withdrawal.md +46 -0
  39. data/docs/WithdrawalCreate.md +22 -0
  40. data/docs/WithdrawalList.md +20 -0
  41. data/git_push.sh +2 -2
  42. data/lib/solifyn/api/affiliate_api.rb +760 -0
  43. data/lib/solifyn/api/billing_api.rb +77 -0
  44. data/lib/solifyn/api/brands_api.rb +284 -0
  45. data/lib/solifyn/api/businesses_api.rb +338 -0
  46. data/lib/solifyn/api/chat_api.rb +232 -0
  47. data/lib/solifyn/api/community_api.rb +466 -0
  48. data/lib/solifyn/api/default_api.rb +0 -248
  49. data/lib/solifyn/api/{discord_integration_api.rb → partner_api.rb} +19 -32
  50. data/lib/solifyn/api/payouts_api.rb +520 -0
  51. data/lib/solifyn/api/ticket_api.rb +328 -0
  52. data/lib/solifyn/api/user_profile_themes_api.rb +313 -0
  53. data/lib/solifyn/models/business.rb +482 -0
  54. data/lib/solifyn/models/business_create.rb +241 -0
  55. data/lib/solifyn/models/business_full_create.rb +288 -0
  56. data/lib/solifyn/models/business_full_create_response.rb +239 -0
  57. data/lib/solifyn/models/collection_product_dto.rb +1 -52
  58. data/lib/solifyn/models/entitlement_grant_response_dto.rb +1 -41
  59. data/lib/solifyn/models/payout_access_token.rb +239 -0
  60. data/lib/solifyn/models/payout_account.rb +249 -0
  61. data/lib/solifyn/models/payout_account_link.rb +239 -0
  62. data/lib/solifyn/models/{discord_roles_response_dto.rb → payout_method.rb} +34 -41
  63. data/lib/solifyn/models/payout_method_list.rb +224 -0
  64. data/lib/solifyn/models/{webhook_entitlement_grant_payload.rb → payout_verification.rb} +41 -118
  65. data/lib/solifyn/models/payout_verification_list.rb +224 -0
  66. data/lib/solifyn/models/product.rb +1 -52
  67. data/lib/solifyn/models/product_create.rb +1 -33
  68. data/lib/solifyn/models/product_update.rb +1 -33
  69. data/lib/solifyn/models/user_page.rb +290 -0
  70. data/lib/solifyn/models/user_settings.rb +337 -0
  71. data/lib/solifyn/models/user_settings_update.rb +505 -0
  72. data/lib/solifyn/models/user_stats.rb +241 -0
  73. data/lib/solifyn/models/user_theme.rb +276 -0
  74. data/lib/solifyn/models/user_theme_update.rb +235 -0
  75. data/lib/solifyn/models/whop_api_keys_rotation.rb +222 -0
  76. data/lib/solifyn/models/withdrawal.rb +411 -0
  77. data/lib/solifyn/models/withdrawal_create.rb +249 -0
  78. data/lib/solifyn/models/withdrawal_list.rb +241 -0
  79. data/lib/solifyn/version.rb +1 -1
  80. data/lib/solifyn.rb +0 -3
  81. data/spec/api/affiliate_api_spec.rb +165 -0
  82. data/spec/api/billing_api_spec.rb +46 -0
  83. data/spec/api/brands_api_spec.rb +83 -0
  84. data/spec/api/businesses_api_spec.rb +93 -0
  85. data/spec/api/chat_api_spec.rb +72 -0
  86. data/spec/api/checkout_api_spec.rb +0 -12
  87. data/spec/api/community_api_spec.rb +113 -0
  88. data/spec/api/default_api_spec.rb +11 -59
  89. data/spec/api/developer_api_spec.rb +29 -52
  90. data/spec/api/{discord_integration_api_spec.rb → partner_api_spec.rb} +11 -16
  91. data/spec/api/payouts_api_spec.rb +133 -0
  92. data/spec/api/ticket_api_spec.rb +86 -0
  93. data/spec/api/user_profile_themes_api_spec.rb +91 -0
  94. data/spec/models/business_create_spec.rb +36 -0
  95. data/spec/models/business_full_create_response_spec.rb +42 -0
  96. data/spec/models/business_full_create_spec.rb +60 -0
  97. data/spec/models/business_spec.rb +150 -0
  98. data/spec/models/checkout_session_details_dto_spec.rb +0 -6
  99. data/spec/models/collection_product_dto_spec.rb +0 -28
  100. data/spec/models/order_spec.rb +0 -6
  101. data/spec/models/payout_access_token_spec.rb +42 -0
  102. data/spec/models/payout_account_link_spec.rb +42 -0
  103. data/spec/models/payout_account_spec.rb +48 -0
  104. data/spec/models/payout_method_list_spec.rb +36 -0
  105. data/spec/models/{discord_roles_response_dto_spec.rb → payout_method_spec.rb} +9 -9
  106. data/spec/models/payout_verification_list_spec.rb +36 -0
  107. data/spec/models/payout_verification_spec.rb +54 -0
  108. data/spec/models/product_create_spec.rb +0 -28
  109. data/spec/models/product_spec.rb +0 -28
  110. data/spec/models/product_update_spec.rb +0 -28
  111. data/spec/models/user_page_spec.rb +60 -0
  112. data/spec/models/user_settings_spec.rb +84 -0
  113. data/spec/models/user_settings_update_spec.rb +210 -0
  114. data/spec/models/user_stats_spec.rb +42 -0
  115. data/spec/models/user_theme_spec.rb +60 -0
  116. data/spec/models/user_theme_update_spec.rb +48 -0
  117. data/spec/models/whop_api_keys_rotation_spec.rb +36 -0
  118. data/spec/models/withdrawal_create_spec.rb +48 -0
  119. data/spec/models/withdrawal_list_spec.rb +42 -0
  120. data/spec/models/{webhook_entitlement_grant_payload_spec.rb → withdrawal_spec.rb} +23 -17
  121. metadata +258 -145
  122. data/docs/DiscordIntegrationApi.md +0 -135
  123. data/docs/DiscordRolesResponseDto.md +0 -24
  124. data/docs/WebhookEntitlementGrantPayload.md +0 -44
@@ -0,0 +1,68 @@
1
+ # Solifyn::BillingApi
2
+
3
+ All URIs are relative to *http://localhost:8000*
4
+
5
+ | Method | HTTP request | Description |
6
+ | ------ | ------------ | ----------- |
7
+ | [**billing_get_plans**](BillingApi.md#billing_get_plans) | **GET** /v1/billing/plans | Get Platform Plans |
8
+
9
+
10
+ ## billing_get_plans
11
+
12
+ > billing_get_plans
13
+
14
+ Get Platform Plans
15
+
16
+ Returns all available platform subscription plans with fees and features.
17
+
18
+ ### Examples
19
+
20
+ ```ruby
21
+ require 'time'
22
+ require 'solifyn'
23
+
24
+ api_instance = Solifyn::BillingApi.new
25
+
26
+ begin
27
+ # Get Platform Plans
28
+ api_instance.billing_get_plans
29
+ rescue Solifyn::ApiError => e
30
+ puts "Error when calling BillingApi->billing_get_plans: #{e}"
31
+ end
32
+ ```
33
+
34
+ #### Using the billing_get_plans_with_http_info variant
35
+
36
+ This returns an Array which contains the response data (`nil` in this case), status code and headers.
37
+
38
+ > <Array(nil, Integer, Hash)> billing_get_plans_with_http_info
39
+
40
+ ```ruby
41
+ begin
42
+ # Get Platform Plans
43
+ data, status_code, headers = api_instance.billing_get_plans_with_http_info
44
+ p status_code # => 2xx
45
+ p headers # => { ... }
46
+ p data # => nil
47
+ rescue Solifyn::ApiError => e
48
+ puts "Error when calling BillingApi->billing_get_plans_with_http_info: #{e}"
49
+ end
50
+ ```
51
+
52
+ ### Parameters
53
+
54
+ This endpoint does not need any parameter.
55
+
56
+ ### Return type
57
+
58
+ nil (empty response body)
59
+
60
+ ### Authorization
61
+
62
+ No authorization required
63
+
64
+ ### HTTP request headers
65
+
66
+ - **Content-Type**: Not defined
67
+ - **Accept**: Not defined
68
+
data/docs/BrandsApi.md ADDED
@@ -0,0 +1,286 @@
1
+ # Solifyn::BrandsApi
2
+
3
+ All URIs are relative to *http://localhost:8000*
4
+
5
+ | Method | HTTP request | Description |
6
+ | ------ | ------------ | ----------- |
7
+ | [**brands_create**](BrandsApi.md#brands_create) | **POST** /v1/user/brand | Create Brand |
8
+ | [**brands_get**](BrandsApi.md#brands_get) | **GET** /v1/user/brand/{id} | Retrieve Brand |
9
+ | [**brands_list**](BrandsApi.md#brands_list) | **GET** /v1/user/brands | List Brands |
10
+ | [**brands_update**](BrandsApi.md#brands_update) | **PATCH** /v1/user/brand/{id} | Update Brand |
11
+
12
+
13
+ ## brands_create
14
+
15
+ > <Brand> brands_create(brand_create)
16
+
17
+ Create Brand
18
+
19
+ Add a new brand identity under the current active business.
20
+
21
+ ### Examples
22
+
23
+ ```ruby
24
+ require 'time'
25
+ require 'solifyn'
26
+ # setup authorization
27
+ Solifyn.configure do |config|
28
+ # Configure Bearer authorization (API Key): ApiKeyAuth
29
+ config.access_token = 'YOUR_BEARER_TOKEN'
30
+ end
31
+
32
+ api_instance = Solifyn::BrandsApi.new
33
+ brand_create = Solifyn::BrandCreate.new({name: 'Acme Corp'}) # BrandCreate |
34
+
35
+ begin
36
+ # Create Brand
37
+ result = api_instance.brands_create(brand_create)
38
+ p result
39
+ rescue Solifyn::ApiError => e
40
+ puts "Error when calling BrandsApi->brands_create: #{e}"
41
+ end
42
+ ```
43
+
44
+ #### Using the brands_create_with_http_info variant
45
+
46
+ This returns an Array which contains the response data, status code and headers.
47
+
48
+ > <Array(<Brand>, Integer, Hash)> brands_create_with_http_info(brand_create)
49
+
50
+ ```ruby
51
+ begin
52
+ # Create Brand
53
+ data, status_code, headers = api_instance.brands_create_with_http_info(brand_create)
54
+ p status_code # => 2xx
55
+ p headers # => { ... }
56
+ p data # => <Brand>
57
+ rescue Solifyn::ApiError => e
58
+ puts "Error when calling BrandsApi->brands_create_with_http_info: #{e}"
59
+ end
60
+ ```
61
+
62
+ ### Parameters
63
+
64
+ | Name | Type | Description | Notes |
65
+ | ---- | ---- | ----------- | ----- |
66
+ | **brand_create** | [**BrandCreate**](BrandCreate.md) | | |
67
+
68
+ ### Return type
69
+
70
+ [**Brand**](Brand.md)
71
+
72
+ ### Authorization
73
+
74
+ [ApiKeyAuth](../README.md#ApiKeyAuth)
75
+
76
+ ### HTTP request headers
77
+
78
+ - **Content-Type**: application/json
79
+ - **Accept**: application/json
80
+
81
+
82
+ ## brands_get
83
+
84
+ > <Brand> brands_get(id)
85
+
86
+ Retrieve Brand
87
+
88
+ Retrieve details of a brand identity by ID.
89
+
90
+ ### Examples
91
+
92
+ ```ruby
93
+ require 'time'
94
+ require 'solifyn'
95
+ # setup authorization
96
+ Solifyn.configure do |config|
97
+ # Configure Bearer authorization (API Key): ApiKeyAuth
98
+ config.access_token = 'YOUR_BEARER_TOKEN'
99
+ end
100
+
101
+ api_instance = Solifyn::BrandsApi.new
102
+ id = 'brd_123' # String | The brand ID to retrieve
103
+
104
+ begin
105
+ # Retrieve Brand
106
+ result = api_instance.brands_get(id)
107
+ p result
108
+ rescue Solifyn::ApiError => e
109
+ puts "Error when calling BrandsApi->brands_get: #{e}"
110
+ end
111
+ ```
112
+
113
+ #### Using the brands_get_with_http_info variant
114
+
115
+ This returns an Array which contains the response data, status code and headers.
116
+
117
+ > <Array(<Brand>, Integer, Hash)> brands_get_with_http_info(id)
118
+
119
+ ```ruby
120
+ begin
121
+ # Retrieve Brand
122
+ data, status_code, headers = api_instance.brands_get_with_http_info(id)
123
+ p status_code # => 2xx
124
+ p headers # => { ... }
125
+ p data # => <Brand>
126
+ rescue Solifyn::ApiError => e
127
+ puts "Error when calling BrandsApi->brands_get_with_http_info: #{e}"
128
+ end
129
+ ```
130
+
131
+ ### Parameters
132
+
133
+ | Name | Type | Description | Notes |
134
+ | ---- | ---- | ----------- | ----- |
135
+ | **id** | **String** | The brand ID to retrieve | |
136
+
137
+ ### Return type
138
+
139
+ [**Brand**](Brand.md)
140
+
141
+ ### Authorization
142
+
143
+ [ApiKeyAuth](../README.md#ApiKeyAuth)
144
+
145
+ ### HTTP request headers
146
+
147
+ - **Content-Type**: Not defined
148
+ - **Accept**: application/json
149
+
150
+
151
+ ## brands_list
152
+
153
+ > <Array<Brand>> brands_list
154
+
155
+ List Brands
156
+
157
+ Retrieve all brands associated with the current business context.
158
+
159
+ ### Examples
160
+
161
+ ```ruby
162
+ require 'time'
163
+ require 'solifyn'
164
+ # setup authorization
165
+ Solifyn.configure do |config|
166
+ # Configure Bearer authorization (API Key): ApiKeyAuth
167
+ config.access_token = 'YOUR_BEARER_TOKEN'
168
+ end
169
+
170
+ api_instance = Solifyn::BrandsApi.new
171
+
172
+ begin
173
+ # List Brands
174
+ result = api_instance.brands_list
175
+ p result
176
+ rescue Solifyn::ApiError => e
177
+ puts "Error when calling BrandsApi->brands_list: #{e}"
178
+ end
179
+ ```
180
+
181
+ #### Using the brands_list_with_http_info variant
182
+
183
+ This returns an Array which contains the response data, status code and headers.
184
+
185
+ > <Array(<Array<Brand>>, Integer, Hash)> brands_list_with_http_info
186
+
187
+ ```ruby
188
+ begin
189
+ # List Brands
190
+ data, status_code, headers = api_instance.brands_list_with_http_info
191
+ p status_code # => 2xx
192
+ p headers # => { ... }
193
+ p data # => <Array<Brand>>
194
+ rescue Solifyn::ApiError => e
195
+ puts "Error when calling BrandsApi->brands_list_with_http_info: #{e}"
196
+ end
197
+ ```
198
+
199
+ ### Parameters
200
+
201
+ This endpoint does not need any parameter.
202
+
203
+ ### Return type
204
+
205
+ [**Array&lt;Brand&gt;**](Brand.md)
206
+
207
+ ### Authorization
208
+
209
+ [ApiKeyAuth](../README.md#ApiKeyAuth)
210
+
211
+ ### HTTP request headers
212
+
213
+ - **Content-Type**: Not defined
214
+ - **Accept**: application/json
215
+
216
+
217
+ ## brands_update
218
+
219
+ > <Brand> brands_update(id, brand_update)
220
+
221
+ Update Brand
222
+
223
+ Update website, logo, description, or statement descriptors of a brand.
224
+
225
+ ### Examples
226
+
227
+ ```ruby
228
+ require 'time'
229
+ require 'solifyn'
230
+ # setup authorization
231
+ Solifyn.configure do |config|
232
+ # Configure Bearer authorization (API Key): ApiKeyAuth
233
+ config.access_token = 'YOUR_BEARER_TOKEN'
234
+ end
235
+
236
+ api_instance = Solifyn::BrandsApi.new
237
+ id = 'brd_123' # String | The brand ID to update
238
+ brand_update = Solifyn::BrandUpdate.new # BrandUpdate |
239
+
240
+ begin
241
+ # Update Brand
242
+ result = api_instance.brands_update(id, brand_update)
243
+ p result
244
+ rescue Solifyn::ApiError => e
245
+ puts "Error when calling BrandsApi->brands_update: #{e}"
246
+ end
247
+ ```
248
+
249
+ #### Using the brands_update_with_http_info variant
250
+
251
+ This returns an Array which contains the response data, status code and headers.
252
+
253
+ > <Array(<Brand>, Integer, Hash)> brands_update_with_http_info(id, brand_update)
254
+
255
+ ```ruby
256
+ begin
257
+ # Update Brand
258
+ data, status_code, headers = api_instance.brands_update_with_http_info(id, brand_update)
259
+ p status_code # => 2xx
260
+ p headers # => { ... }
261
+ p data # => <Brand>
262
+ rescue Solifyn::ApiError => e
263
+ puts "Error when calling BrandsApi->brands_update_with_http_info: #{e}"
264
+ end
265
+ ```
266
+
267
+ ### Parameters
268
+
269
+ | Name | Type | Description | Notes |
270
+ | ---- | ---- | ----------- | ----- |
271
+ | **id** | **String** | The brand ID to update | |
272
+ | **brand_update** | [**BrandUpdate**](BrandUpdate.md) | | |
273
+
274
+ ### Return type
275
+
276
+ [**Brand**](Brand.md)
277
+
278
+ ### Authorization
279
+
280
+ [ApiKeyAuth](../README.md#ApiKeyAuth)
281
+
282
+ ### HTTP request headers
283
+
284
+ - **Content-Type**: application/json
285
+ - **Accept**: application/json
286
+
data/docs/Business.md ADDED
@@ -0,0 +1,56 @@
1
+ # Solifyn::Business
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **id** | **String** | The unique business ID | |
8
+ | **title** | **String** | Title or name of the business | |
9
+ | **description** | **String** | A description explaining what the business does | [optional] |
10
+ | **whop_id** | **String** | The Whop Company ID | |
11
+ | **merchant_id** | **String** | The merchant owner ID | |
12
+ | **verified** | **Boolean** | Whether the business has been KYC-verified on Whop | |
13
+ | **send_customer_emails** | **Boolean** | Whether auto-emails are enabled for customers | |
14
+ | **member_count** | **Float** | Total members/customers under this business | |
15
+ | **route** | **String** | Whop friendly URL path route | [optional] |
16
+ | **default_currency** | **String** | The default currency of the business | |
17
+ | **published_reviews_count** | **Float** | Number of published user reviews on Whop | |
18
+ | **metadata** | **Object** | Custom key-value metadata | [optional] |
19
+ | **target_audience** | **String** | The target audience description | [optional] |
20
+ | **social_links** | **Object** | Social links setup | [optional] |
21
+ | **affiliate_instructions** | **String** | Markdown instructions for affiliates | [optional] |
22
+ | **whop_created_at** | **Time** | Whop account creation timestamp | [optional] |
23
+ | **whop_updated_at** | **Time** | Whop account last updated timestamp | [optional] |
24
+ | **created_at** | **Time** | Timestamp when the business record was created | |
25
+ | **updated_at** | **Time** | Timestamp when the business record was last updated | |
26
+ | **logo_url** | **String** | Brand logo image URL resolved from primary brand | [optional] |
27
+
28
+ ## Example
29
+
30
+ ```ruby
31
+ require 'solifyn'
32
+
33
+ instance = Solifyn::Business.new(
34
+ id: biz_123,
35
+ title: Acme Inc,
36
+ description: Premium tools and subscriptions,
37
+ whop_id: comp_123,
38
+ merchant_id: mer_123,
39
+ verified: true,
40
+ send_customer_emails: true,
41
+ member_count: 100,
42
+ route: acme,
43
+ default_currency: USD,
44
+ published_reviews_count: 15,
45
+ metadata: null,
46
+ target_audience: Developers and creators,
47
+ social_links: null,
48
+ affiliate_instructions: Promote our tools and earn 30% commission.,
49
+ whop_created_at: 2025-01-01T12:00:00Z,
50
+ whop_updated_at: 2025-01-01T12:00:00Z,
51
+ created_at: 2025-01-01T12:00:00Z,
52
+ updated_at: 2025-01-01T12:00:00Z,
53
+ logo_url: https://acme.com/logo.png
54
+ )
55
+ ```
56
+
@@ -0,0 +1,18 @@
1
+ # Solifyn::BusinessCreate
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **title** | **String** | The title/name of the business | |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'solifyn'
13
+
14
+ instance = Solifyn::BusinessCreate.new(
15
+ title: Acme Inc
16
+ )
17
+ ```
18
+
@@ -0,0 +1,26 @@
1
+ # Solifyn::BusinessFullCreate
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **title** | **String** | The title/name of the business | |
8
+ | **website_url** | **String** | The primary website URL for the business | [optional] |
9
+ | **country** | **String** | Country name of the business registration | |
10
+ | **category** | **String** | The business market category (e.g. software, media) | [optional] |
11
+ | **referred_by_code** | **String** | Optional partner referral code used during signup | [optional] |
12
+
13
+ ## Example
14
+
15
+ ```ruby
16
+ require 'solifyn'
17
+
18
+ instance = Solifyn::BusinessFullCreate.new(
19
+ title: Acme LLC,
20
+ website_url: https://acme.com,
21
+ country: Vietnam,
22
+ category: software,
23
+ referred_by_code: partner_abc123
24
+ )
25
+ ```
26
+
@@ -0,0 +1,20 @@
1
+ # Solifyn::BusinessFullCreateResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **success** | **Boolean** | Indicates if creation was successful | |
8
+ | **business_id** | **String** | The newly created business ID | |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'solifyn'
14
+
15
+ instance = Solifyn::BusinessFullCreateResponse.new(
16
+ success: true,
17
+ business_id: biz_123
18
+ )
19
+ ```
20
+