growsurf-ruby 0.8.0 → 1.1.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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/growsurf_ruby/client.rb +4 -0
  5. data/lib/growsurf_ruby/models/account.rb +90 -0
  6. data/lib/growsurf_ruby/models/account_create_params.rb +46 -0
  7. data/lib/growsurf_ruby/models/account_create_response.rb +64 -0
  8. data/lib/growsurf_ruby/models/account_resend_verification_email_response.rb +33 -0
  9. data/lib/growsurf_ruby/models/account_rotate_api_key_response.rb +17 -0
  10. data/lib/growsurf_ruby/models/account_update_params.rb +35 -0
  11. data/lib/growsurf_ruby/models/campaign/campaign_reward_list_response.rb +2 -2
  12. data/lib/growsurf_ruby/models/campaign/create.rb +5 -1
  13. data/lib/growsurf_ruby/models/campaign/participant_activity_logs_response.rb +65 -0
  14. data/lib/growsurf_ruby/models/campaign/participant_analytics_response.rb +421 -0
  15. data/lib/growsurf_ruby/models/campaign/participant_bulk_delete_params.rb +35 -0
  16. data/lib/growsurf_ruby/models/campaign/participant_bulk_delete_response.rb +151 -0
  17. data/lib/growsurf_ruby/models/campaign/participant_email_params.rb +76 -0
  18. data/lib/growsurf_ruby/models/campaign/participant_email_response.rb +38 -0
  19. data/lib/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rb +46 -0
  20. data/lib/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rb +98 -0
  21. data/lib/growsurf_ruby/models/campaign/participant_update_params.rb +21 -1
  22. data/lib/growsurf_ruby/models/campaign/reward.rb +43 -5
  23. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +48 -15
  24. data/lib/growsurf_ruby/models/campaign/reward_delete_params.rb +4 -4
  25. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +51 -18
  26. data/lib/growsurf_ruby/models/campaign/webhook.rb +72 -0
  27. data/lib/growsurf_ruby/models/campaign/webhook_create_params.rb +52 -0
  28. data/lib/growsurf_ruby/models/campaign/webhook_delete_params.rb +28 -0
  29. data/lib/growsurf_ruby/models/campaign/webhook_delete_response.rb +24 -0
  30. data/lib/growsurf_ruby/models/campaign/webhook_event.rb +23 -0
  31. data/lib/growsurf_ruby/models/campaign/webhook_list_response.rb +18 -0
  32. data/lib/growsurf_ruby/models/campaign/webhook_test_params.rb +42 -0
  33. data/lib/growsurf_ruby/models/campaign/webhook_test_response.rb +50 -0
  34. data/lib/growsurf_ruby/models/campaign/webhook_update_params.rb +59 -0
  35. data/lib/growsurf_ruby/models/campaign.rb +43 -5
  36. data/lib/growsurf_ruby/models/campaign_create_params.rb +1 -15
  37. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +36 -1
  38. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +538 -1
  39. data/lib/growsurf_ruby/models/campaign_update_params.rb +1 -53
  40. data/lib/growsurf_ruby/models/commission_structure.rb +8 -2
  41. data/lib/growsurf_ruby/models/referral_flow_screenshots_response.rb +72 -0
  42. data/lib/growsurf_ruby/models/reward_tax_valuation.rb +35 -0
  43. data/lib/growsurf_ruby/models.rb +10 -0
  44. data/lib/growsurf_ruby/resources/account.rb +159 -0
  45. data/lib/growsurf_ruby/resources/campaign/design.rb +68 -0
  46. data/lib/growsurf_ruby/resources/campaign/emails.rb +66 -0
  47. data/lib/growsurf_ruby/resources/campaign/installation.rb +67 -0
  48. data/lib/growsurf_ruby/resources/campaign/options.rb +66 -0
  49. data/lib/growsurf_ruby/resources/campaign/participant.rb +170 -2
  50. data/lib/growsurf_ruby/resources/campaign/rewards.rb +36 -32
  51. data/lib/growsurf_ruby/resources/campaign/webhooks.rb +157 -0
  52. data/lib/growsurf_ruby/resources/campaign.rb +62 -27
  53. data/lib/growsurf_ruby/version.rb +1 -1
  54. data/lib/growsurf_ruby.rb +31 -0
  55. data/rbi/growsurf_ruby/client.rbi +3 -0
  56. data/rbi/growsurf_ruby/models/account.rbi +125 -0
  57. data/rbi/growsurf_ruby/models/account_create_params.rbi +73 -0
  58. data/rbi/growsurf_ruby/models/account_create_response.rbi +115 -0
  59. data/rbi/growsurf_ruby/models/account_resend_verification_email_response.rbi +76 -0
  60. data/rbi/growsurf_ruby/models/account_rotate_api_key_response.rbi +30 -0
  61. data/rbi/growsurf_ruby/models/account_update_params.rbi +65 -0
  62. data/rbi/growsurf_ruby/models/campaign/campaign_reward_list_response.rbi +2 -2
  63. data/rbi/growsurf_ruby/models/campaign/create.rbi +8 -0
  64. data/rbi/growsurf_ruby/models/campaign/participant_activity_logs_response.rbi +111 -0
  65. data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +630 -0
  66. data/rbi/growsurf_ruby/models/campaign/participant_bulk_delete_params.rbi +56 -0
  67. data/rbi/growsurf_ruby/models/campaign/participant_bulk_delete_response.rbi +285 -0
  68. data/rbi/growsurf_ruby/models/campaign/participant_email_params.rbi +118 -0
  69. data/rbi/growsurf_ruby/models/campaign/participant_email_response.rbi +84 -0
  70. data/rbi/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rbi +74 -0
  71. data/rbi/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbi +207 -0
  72. data/rbi/growsurf_ruby/models/campaign/participant_update_params.rbi +24 -0
  73. data/rbi/growsurf_ruby/models/campaign/reward.rbi +63 -3
  74. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +62 -9
  75. data/rbi/growsurf_ruby/models/campaign/reward_delete_params.rbi +4 -4
  76. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +66 -13
  77. data/rbi/growsurf_ruby/models/campaign/webhook.rbi +93 -0
  78. data/rbi/growsurf_ruby/models/campaign/webhook_create_params.rbi +91 -0
  79. data/rbi/growsurf_ruby/models/campaign/webhook_delete_params.rbi +48 -0
  80. data/rbi/growsurf_ruby/models/campaign/webhook_delete_response.rbi +33 -0
  81. data/rbi/growsurf_ruby/models/campaign/webhook_event.rbi +60 -0
  82. data/rbi/growsurf_ruby/models/campaign/webhook_list_response.rbi +36 -0
  83. data/rbi/growsurf_ruby/models/campaign/webhook_test_params.rbi +69 -0
  84. data/rbi/growsurf_ruby/models/campaign/webhook_test_response.rbi +102 -0
  85. data/rbi/growsurf_ruby/models/campaign/webhook_update_params.rbi +98 -0
  86. data/rbi/growsurf_ruby/models/campaign.rbi +63 -3
  87. data/rbi/growsurf_ruby/models/campaign_create_params.rbi +0 -18
  88. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +91 -0
  89. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +1011 -3
  90. data/rbi/growsurf_ruby/models/campaign_update_params.rbi +0 -78
  91. data/rbi/growsurf_ruby/models/commission_structure.rbi +8 -2
  92. data/rbi/growsurf_ruby/models/referral_flow_screenshots_response.rbi +94 -0
  93. data/rbi/growsurf_ruby/models/reward_tax_valuation.rbi +56 -0
  94. data/rbi/growsurf_ruby/models.rbi +11 -0
  95. data/rbi/growsurf_ruby/resources/account.rbi +112 -0
  96. data/rbi/growsurf_ruby/resources/campaign/design.rbi +52 -0
  97. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +51 -0
  98. data/rbi/growsurf_ruby/resources/campaign/installation.rbi +53 -0
  99. data/rbi/growsurf_ruby/resources/campaign/options.rbi +51 -0
  100. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +160 -0
  101. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +61 -29
  102. data/rbi/growsurf_ruby/resources/campaign/webhooks.rbi +123 -0
  103. data/rbi/growsurf_ruby/resources/campaign.rbi +58 -32
  104. data/sig/growsurf_ruby/client.rbs +2 -0
  105. data/sig/growsurf_ruby/models/account.rbs +67 -0
  106. data/sig/growsurf_ruby/models/account_create_params.rbs +42 -0
  107. data/sig/growsurf_ruby/models/account_create_response.rbs +47 -0
  108. data/sig/growsurf_ruby/models/account_resend_verification_email_response.rbs +35 -0
  109. data/sig/growsurf_ruby/models/account_rotate_api_key_response.rbs +13 -0
  110. data/sig/growsurf_ruby/models/account_update_params.rbs +42 -0
  111. data/sig/growsurf_ruby/models/campaign/participant_activity_logs_response.rbs +59 -0
  112. data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +407 -0
  113. data/sig/growsurf_ruby/models/campaign/participant_bulk_delete_params.rbs +30 -0
  114. data/sig/growsurf_ruby/models/campaign/participant_bulk_delete_response.rbs +125 -0
  115. data/sig/growsurf_ruby/models/campaign/participant_email_params.rbs +61 -0
  116. data/sig/growsurf_ruby/models/campaign/participant_email_response.rbs +37 -0
  117. data/sig/growsurf_ruby/models/campaign/participant_list_activity_logs_params.rbs +47 -0
  118. data/sig/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rbs +90 -0
  119. data/sig/growsurf_ruby/models/campaign/participant_update_params.rbs +14 -0
  120. data/sig/growsurf_ruby/models/campaign/reward.rbs +18 -3
  121. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +19 -8
  122. data/sig/growsurf_ruby/models/campaign/reward_delete_params.rbs +4 -4
  123. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +23 -12
  124. data/sig/growsurf_ruby/models/campaign/webhook.rbs +52 -0
  125. data/sig/growsurf_ruby/models/campaign/webhook_create_params.rbs +51 -0
  126. data/sig/growsurf_ruby/models/campaign/webhook_delete_params.rbs +30 -0
  127. data/sig/growsurf_ruby/models/campaign/webhook_delete_response.rbs +17 -0
  128. data/sig/growsurf_ruby/models/campaign/webhook_event.rbs +28 -0
  129. data/sig/growsurf_ruby/models/campaign/webhook_list_response.rbs +18 -0
  130. data/sig/growsurf_ruby/models/campaign/webhook_test_params.rbs +42 -0
  131. data/sig/growsurf_ruby/models/campaign/webhook_test_response.rbs +54 -0
  132. data/sig/growsurf_ruby/models/campaign/webhook_update_params.rbs +63 -0
  133. data/sig/growsurf_ruby/models/campaign.rbs +18 -3
  134. data/sig/growsurf_ruby/models/campaign_create_params.rbs +0 -14
  135. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +35 -1
  136. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +533 -3
  137. data/sig/growsurf_ruby/models/campaign_update_params.rbs +1 -53
  138. data/sig/growsurf_ruby/models/commission_structure.rbs +7 -2
  139. data/sig/growsurf_ruby/models/referral_flow_screenshots_response.rbs +54 -0
  140. data/sig/growsurf_ruby/models/reward_tax_valuation.rbs +22 -0
  141. data/sig/growsurf_ruby/models.rbs +10 -0
  142. data/sig/growsurf_ruby/resources/account.rbs +38 -0
  143. data/sig/growsurf_ruby/resources/campaign/design.rbs +20 -0
  144. data/sig/growsurf_ruby/resources/campaign/emails.rbs +20 -0
  145. data/sig/growsurf_ruby/resources/campaign/installation.rbs +20 -0
  146. data/sig/growsurf_ruby/resources/campaign/options.rbs +20 -0
  147. data/sig/growsurf_ruby/resources/campaign/participant.rbs +37 -0
  148. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +6 -4
  149. data/sig/growsurf_ruby/resources/campaign/webhooks.rbs +46 -0
  150. data/sig/growsurf_ruby/resources/campaign.rbs +17 -9
  151. metadata +95 -2
@@ -0,0 +1,102 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class WebhookTestResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::WebhookTestResponse,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(T::Boolean) }
16
+ attr_accessor :success
17
+
18
+ # The mock event payload that was sent.
19
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
20
+ attr_reader :payload
21
+
22
+ sig { params(payload: T::Hash[Symbol, T.anything]).void }
23
+ attr_writer :payload
24
+
25
+ sig do
26
+ returns(
27
+ T.nilable(GrowsurfRuby::Campaign::WebhookTestResponse::Response)
28
+ )
29
+ end
30
+ attr_reader :response
31
+
32
+ sig do
33
+ params(
34
+ response:
35
+ GrowsurfRuby::Campaign::WebhookTestResponse::Response::OrHash
36
+ ).void
37
+ end
38
+ attr_writer :response
39
+
40
+ sig do
41
+ params(
42
+ success: T::Boolean,
43
+ payload: T::Hash[Symbol, T.anything],
44
+ response:
45
+ GrowsurfRuby::Campaign::WebhookTestResponse::Response::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ success:,
50
+ # The mock event payload that was sent.
51
+ payload: nil,
52
+ response: nil
53
+ )
54
+ end
55
+
56
+ sig do
57
+ override.returns(
58
+ {
59
+ success: T::Boolean,
60
+ payload: T::Hash[Symbol, T.anything],
61
+ response: GrowsurfRuby::Campaign::WebhookTestResponse::Response
62
+ }
63
+ )
64
+ end
65
+ def to_hash
66
+ end
67
+
68
+ class Response < GrowsurfRuby::Internal::Type::BaseModel
69
+ OrHash =
70
+ T.type_alias do
71
+ T.any(
72
+ GrowsurfRuby::Campaign::WebhookTestResponse::Response,
73
+ GrowsurfRuby::Internal::AnyHash
74
+ )
75
+ end
76
+
77
+ sig { returns(T.nilable(String)) }
78
+ attr_reader :msg
79
+
80
+ sig { params(msg: String).void }
81
+ attr_writer :msg
82
+
83
+ sig { returns(T.nilable(Integer)) }
84
+ attr_reader :status_code
85
+
86
+ sig { params(status_code: Integer).void }
87
+ attr_writer :status_code
88
+
89
+ sig do
90
+ params(msg: String, status_code: Integer).returns(T.attached_class)
91
+ end
92
+ def self.new(msg: nil, status_code: nil)
93
+ end
94
+
95
+ sig { override.returns({ msg: String, status_code: Integer }) }
96
+ def to_hash
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,98 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class WebhookUpdateParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ GrowsurfRuby::Campaign::WebhookUpdateParams,
14
+ GrowsurfRuby::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :webhook_id
23
+
24
+ sig do
25
+ returns(
26
+ T.nilable(T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol])
27
+ )
28
+ end
29
+ attr_reader :events
30
+
31
+ sig do
32
+ params(
33
+ events: T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol]
34
+ ).void
35
+ end
36
+ attr_writer :events
37
+
38
+ sig { returns(T.nilable(T::Boolean)) }
39
+ attr_reader :is_enabled
40
+
41
+ sig { params(is_enabled: T::Boolean).void }
42
+ attr_writer :is_enabled
43
+
44
+ sig { returns(T.nilable(String)) }
45
+ attr_reader :payload_url
46
+
47
+ sig { params(payload_url: String).void }
48
+ attr_writer :payload_url
49
+
50
+ # Write-only.
51
+ sig { returns(T.nilable(String)) }
52
+ attr_reader :secret
53
+
54
+ sig { params(secret: String).void }
55
+ attr_writer :secret
56
+
57
+ sig do
58
+ params(
59
+ id: String,
60
+ webhook_id: String,
61
+ events: T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol],
62
+ is_enabled: T::Boolean,
63
+ payload_url: String,
64
+ secret: String,
65
+ request_options: GrowsurfRuby::RequestOptions::OrHash
66
+ ).returns(T.attached_class)
67
+ end
68
+ def self.new(
69
+ id:,
70
+ webhook_id:,
71
+ events: nil,
72
+ is_enabled: nil,
73
+ payload_url: nil,
74
+ # Write-only.
75
+ secret: nil,
76
+ request_options: {}
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {
83
+ id: String,
84
+ webhook_id: String,
85
+ events: T::Array[GrowsurfRuby::Campaign::WebhookEvent::OrSymbol],
86
+ is_enabled: T::Boolean,
87
+ payload_url: String,
88
+ secret: String,
89
+ request_options: GrowsurfRuby::RequestOptions
90
+ }
91
+ )
92
+ end
93
+ def to_hash
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -130,6 +130,9 @@ module GrowsurfRuby
130
130
  sig { returns(T.nilable(Integer)) }
131
131
  attr_accessor :conversions_required
132
132
 
133
+ # Legacy static coupon code shown to the referrer in the reward-won email and
134
+ # webhook. Display text only; superseded by a connected billing integration's
135
+ # issued coupon when one exists.
133
136
  sig { returns(T.nilable(String)) }
134
137
  attr_accessor :coupon_code
135
138
 
@@ -152,18 +155,30 @@ module GrowsurfRuby
152
155
  end
153
156
  attr_accessor :limit_duration
154
157
 
158
+ # Text shown before a participant's referral count in milestone-progress copy.
159
+ # Applies to `MILESTONE` rewards.
155
160
  sig { returns(T.nilable(String)) }
156
161
  attr_accessor :next_milestone_prefix
157
162
 
163
+ # Text shown after a participant's referral count in milestone-progress copy.
164
+ # Applies to `MILESTONE` rewards.
158
165
  sig { returns(T.nilable(String)) }
159
166
  attr_accessor :next_milestone_suffix
160
167
 
168
+ # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
169
+ # `PER_MONTH` this many win each month, otherwise this many win in total.
161
170
  sig { returns(T.nilable(Integer)) }
162
171
  attr_accessor :number_of_winners
163
172
 
164
173
  sig { returns(T.nilable(Integer)) }
165
174
  attr_accessor :order
166
175
 
176
+ # Legacy static coupon code shown to the referred friend (double-sided rewards)
177
+ # in the reward-won email and webhook. Display text only; superseded by a
178
+ # connected billing integration's issued coupon when one exists.
179
+ sig { returns(T.nilable(String)) }
180
+ attr_accessor :referral_coupon_code
181
+
167
182
  sig { returns(T.nilable(String)) }
168
183
  attr_accessor :referral_description
169
184
 
@@ -173,6 +188,28 @@ module GrowsurfRuby
173
188
  sig { params(referred_reward_upfront: T::Boolean).void }
174
189
  attr_writer :referred_reward_upfront
175
190
 
191
+ # Tax valuation for the referred friend's side of a double-sided reward.
192
+ sig { returns(T.nilable(GrowsurfRuby::RewardTaxValuation)) }
193
+ attr_reader :referred_value
194
+
195
+ sig do
196
+ params(
197
+ referred_value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
198
+ ).void
199
+ end
200
+ attr_writer :referred_value
201
+
202
+ # Tax valuation for the reward (the referrer's side of a double-sided reward).
203
+ sig { returns(T.nilable(GrowsurfRuby::RewardTaxValuation)) }
204
+ attr_reader :value
205
+
206
+ sig do
207
+ params(
208
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
209
+ ).void
210
+ end
211
+ attr_writer :value
212
+
176
213
  sig do
177
214
  params(
178
215
  id: String,
@@ -194,8 +231,11 @@ module GrowsurfRuby
194
231
  next_milestone_suffix: T.nilable(String),
195
232
  number_of_winners: T.nilable(Integer),
196
233
  order: T.nilable(Integer),
234
+ referral_coupon_code: T.nilable(String),
197
235
  referral_description: T.nilable(String),
198
- referred_reward_upfront: T::Boolean
236
+ referred_reward_upfront: T::Boolean,
237
+ referred_value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
238
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
199
239
  ).returns(T.attached_class)
200
240
  end
201
241
  def self.new(
@@ -206,18 +246,35 @@ module GrowsurfRuby
206
246
  type:,
207
247
  commission_structure: nil,
208
248
  conversions_required: nil,
249
+ # Legacy static coupon code shown to the referrer in the reward-won email and
250
+ # webhook. Display text only; superseded by a connected billing integration's
251
+ # issued coupon when one exists.
209
252
  coupon_code: nil,
210
253
  description: nil,
211
254
  image_url: nil,
212
255
  # `-1` represents an unlimited reward in REST responses.
213
256
  limit: nil,
214
257
  limit_duration: nil,
258
+ # Text shown before a participant's referral count in milestone-progress copy.
259
+ # Applies to `MILESTONE` rewards.
215
260
  next_milestone_prefix: nil,
261
+ # Text shown after a participant's referral count in milestone-progress copy.
262
+ # Applies to `MILESTONE` rewards.
216
263
  next_milestone_suffix: nil,
264
+ # The number of winners (`LEADERBOARD` rewards only). With `limitDuration`
265
+ # `PER_MONTH` this many win each month, otherwise this many win in total.
217
266
  number_of_winners: nil,
218
267
  order: nil,
268
+ # Legacy static coupon code shown to the referred friend (double-sided rewards)
269
+ # in the reward-won email and webhook. Display text only; superseded by a
270
+ # connected billing integration's issued coupon when one exists.
271
+ referral_coupon_code: nil,
219
272
  referral_description: nil,
220
- referred_reward_upfront: nil
273
+ referred_reward_upfront: nil,
274
+ # Tax valuation for the referred friend's side of a double-sided reward.
275
+ referred_value: nil,
276
+ # Tax valuation for the reward (the referrer's side of a double-sided reward).
277
+ value: nil
221
278
  )
222
279
  end
223
280
 
@@ -243,8 +300,11 @@ module GrowsurfRuby
243
300
  next_milestone_suffix: T.nilable(String),
244
301
  number_of_winners: T.nilable(Integer),
245
302
  order: T.nilable(Integer),
303
+ referral_coupon_code: T.nilable(String),
246
304
  referral_description: T.nilable(String),
247
- referred_reward_upfront: T::Boolean
305
+ referred_reward_upfront: T::Boolean,
306
+ referred_value: T.nilable(GrowsurfRuby::RewardTaxValuation),
307
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation)
248
308
  }
249
309
  )
250
310
  end
@@ -35,24 +35,12 @@ module GrowsurfRuby
35
35
  sig { params(currency_iso: String).void }
36
36
  attr_writer :currency_iso
37
37
 
38
- sig { returns(T.nilable(String)) }
39
- attr_reader :goal
40
-
41
- sig { params(goal: String).void }
42
- attr_writer :goal
43
-
44
38
  sig { returns(T.nilable(String)) }
45
39
  attr_reader :name
46
40
 
47
41
  sig { params(name: String).void }
48
42
  attr_writer :name
49
43
 
50
- sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
51
- attr_reader :options
52
-
53
- sig { params(options: T::Hash[Symbol, T.anything]).void }
54
- attr_writer :options
55
-
56
44
  sig do
57
45
  returns(T.nilable(T::Array[GrowsurfRuby::Campaign::RewardCreateParams]))
58
46
  end
@@ -71,9 +59,7 @@ module GrowsurfRuby
71
59
  company_logo_image_url: String,
72
60
  company_name: String,
73
61
  currency_iso: String,
74
- goal: String,
75
62
  name: String,
76
- options: T::Hash[Symbol, T.anything],
77
63
  rewards: T::Array[GrowsurfRuby::Campaign::RewardCreateParams::OrHash],
78
64
  request_options: GrowsurfRuby::RequestOptions::OrHash
79
65
  ).returns(T.attached_class)
@@ -83,9 +69,7 @@ module GrowsurfRuby
83
69
  company_logo_image_url: nil,
84
70
  company_name: nil,
85
71
  currency_iso: nil,
86
- goal: nil,
87
72
  name: nil,
88
- options: nil,
89
73
  rewards: nil,
90
74
  request_options: {}
91
75
  )
@@ -98,9 +82,7 @@ module GrowsurfRuby
98
82
  company_logo_image_url: String,
99
83
  company_name: String,
100
84
  currency_iso: String,
101
- goal: String,
102
85
  name: String,
103
- options: T::Hash[Symbol, T.anything],
104
86
  rewards:
105
87
  T::Array[GrowsurfRuby::Campaign::RewardCreateParams::OrHash],
106
88
  request_options: GrowsurfRuby::RequestOptions
@@ -32,6 +32,36 @@ module GrowsurfRuby
32
32
  sig { params(end_date: Integer).void }
33
33
  attr_writer :end_date
34
34
 
35
+ # Comma-separated list of optional enrichments (opt-in to keep the default response
36
+ # lean): `previousPeriod` adds totals for the equal-length window immediately before
37
+ # the requested one; `statusCounts` adds reward (and, for affiliate programs,
38
+ # affiliate/commission/payout) status breakdowns; `rates` adds derived referral
39
+ # rates.
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :include
42
+
43
+ sig { params(include: String).void }
44
+ attr_writer :include
45
+
46
+ # When set to `day`, `week`, or `month`, the response also includes a `series` array
47
+ # with per-period totals. Defaults to `total` (no series).
48
+ sig do
49
+ returns(
50
+ T.nilable(
51
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::OrSymbol
52
+ )
53
+ )
54
+ end
55
+ attr_reader :interval
56
+
57
+ sig do
58
+ params(
59
+ interval:
60
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::OrSymbol
61
+ ).void
62
+ end
63
+ attr_writer :interval
64
+
35
65
  # Start date of the analytics timeframe as a Unix timestamp in milliseconds.
36
66
  # Required if `days` is not set.
37
67
  sig { returns(T.nilable(Integer)) }
@@ -45,6 +75,9 @@ module GrowsurfRuby
45
75
  id: String,
46
76
  days: Integer,
47
77
  end_date: Integer,
78
+ include: String,
79
+ interval:
80
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::OrSymbol,
48
81
  start_date: Integer,
49
82
  request_options: GrowsurfRuby::RequestOptions::OrHash
50
83
  ).returns(T.attached_class)
@@ -56,6 +89,15 @@ module GrowsurfRuby
56
89
  # End date of the analytics timeframe as a Unix timestamp in milliseconds.
57
90
  # Required if `days` is not set.
58
91
  end_date: nil,
92
+ # Comma-separated list of optional enrichments (opt-in to keep the default response
93
+ # lean): `previousPeriod` adds totals for the equal-length window immediately before
94
+ # the requested one; `statusCounts` adds reward (and, for affiliate programs,
95
+ # affiliate/commission/payout) status breakdowns; `rates` adds derived referral
96
+ # rates.
97
+ include: nil,
98
+ # When set to `day`, `week`, or `month`, the response also includes a `series` array
99
+ # with per-period totals. Defaults to `total` (no series).
100
+ interval: nil,
59
101
  # Start date of the analytics timeframe as a Unix timestamp in milliseconds.
60
102
  # Required if `days` is not set.
61
103
  start_date: nil,
@@ -69,6 +111,9 @@ module GrowsurfRuby
69
111
  id: String,
70
112
  days: Integer,
71
113
  end_date: Integer,
114
+ include: String,
115
+ interval:
116
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::OrSymbol,
72
117
  start_date: Integer,
73
118
  request_options: GrowsurfRuby::RequestOptions
74
119
  }
@@ -76,6 +121,52 @@ module GrowsurfRuby
76
121
  end
77
122
  def to_hash
78
123
  end
124
+
125
+ # When set to `day`, `week`, or `month`, the response also includes a `series` array
126
+ # with per-period totals. Defaults to `total` (no series).
127
+ module Interval
128
+ extend GrowsurfRuby::Internal::Type::Enum
129
+
130
+ TaggedSymbol =
131
+ T.type_alias do
132
+ T.all(
133
+ Symbol,
134
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval
135
+ )
136
+ end
137
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
138
+
139
+ DAY =
140
+ T.let(
141
+ :day,
142
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::TaggedSymbol
143
+ )
144
+ WEEK =
145
+ T.let(
146
+ :week,
147
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::TaggedSymbol
148
+ )
149
+ MONTH =
150
+ T.let(
151
+ :month,
152
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::TaggedSymbol
153
+ )
154
+ TOTAL =
155
+ T.let(
156
+ :total,
157
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::TaggedSymbol
158
+ )
159
+
160
+ sig do
161
+ override.returns(
162
+ T::Array[
163
+ GrowsurfRuby::CampaignRetrieveAnalyticsParams::Interval::TaggedSymbol
164
+ ]
165
+ )
166
+ end
167
+ def self.values
168
+ end
169
+ end
79
170
  end
80
171
  end
81
172
  end