growsurf-ruby 0.7.0 → 1.0.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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/growsurf_ruby/models/campaign/campaign_reward_list_response.rb +21 -0
  5. data/lib/growsurf_ruby/models/campaign/delete_reward_response.rb +26 -0
  6. data/lib/growsurf_ruby/models/campaign/reward.rb +193 -0
  7. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +212 -0
  8. data/lib/growsurf_ruby/models/campaign/reward_delete_params.rb +4 -4
  9. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +205 -0
  10. data/lib/growsurf_ruby/models/campaign.rb +28 -1
  11. data/lib/growsurf_ruby/models/campaign_create_params.rb +68 -0
  12. data/lib/growsurf_ruby/models/campaign_update_params.rb +63 -0
  13. data/lib/growsurf_ruby/models/reward_tax_valuation.rb +35 -0
  14. data/lib/growsurf_ruby/models.rb +6 -0
  15. data/lib/growsurf_ruby/resources/campaign/design.rb +66 -0
  16. data/lib/growsurf_ruby/resources/campaign/emails.rb +63 -0
  17. data/lib/growsurf_ruby/resources/campaign/installation.rb +65 -0
  18. data/lib/growsurf_ruby/resources/campaign/options.rb +63 -0
  19. data/lib/growsurf_ruby/resources/campaign/rewards.rb +199 -0
  20. data/lib/growsurf_ruby/resources/campaign.rb +112 -0
  21. data/lib/growsurf_ruby/version.rb +1 -1
  22. data/lib/growsurf_ruby.rb +13 -0
  23. data/rbi/growsurf_ruby/models/campaign/campaign_reward_list_response.rbi +41 -0
  24. data/rbi/growsurf_ruby/models/campaign/delete_reward_response.rbi +38 -0
  25. data/rbi/growsurf_ruby/models/campaign/reward.rbi +291 -0
  26. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +358 -0
  27. data/rbi/growsurf_ruby/models/campaign/reward_delete_params.rbi +4 -4
  28. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +309 -0
  29. data/rbi/growsurf_ruby/models/campaign.rbi +42 -3
  30. data/rbi/growsurf_ruby/models/campaign_create_params.rbi +125 -0
  31. data/rbi/growsurf_ruby/models/campaign_update_params.rbi +130 -0
  32. data/rbi/growsurf_ruby/models/reward_tax_valuation.rbi +56 -0
  33. data/rbi/growsurf_ruby/models.rbi +6 -0
  34. data/rbi/growsurf_ruby/resources/campaign/design.rbi +50 -0
  35. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +49 -0
  36. data/rbi/growsurf_ruby/resources/campaign/installation.rbi +50 -0
  37. data/rbi/growsurf_ruby/resources/campaign/options.rbi +49 -0
  38. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +216 -0
  39. data/rbi/growsurf_ruby/resources/campaign.rbi +94 -0
  40. data/sig/growsurf_ruby/models/campaign/campaign_reward_list_response.rbs +18 -0
  41. data/sig/growsurf_ruby/models/campaign/delete_reward_response.rbs +17 -0
  42. data/sig/growsurf_ruby/models/campaign/reward.rbs +146 -0
  43. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +210 -0
  44. data/sig/growsurf_ruby/models/campaign/reward_delete_params.rbs +4 -4
  45. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +200 -0
  46. data/sig/growsurf_ruby/models/campaign.rbs +18 -3
  47. data/sig/growsurf_ruby/models/campaign_create_params.rbs +74 -0
  48. data/sig/growsurf_ruby/models/campaign_update_params.rbs +70 -0
  49. data/sig/growsurf_ruby/models/reward_tax_valuation.rbs +19 -0
  50. data/sig/growsurf_ruby/models.rbs +6 -0
  51. data/sig/growsurf_ruby/resources/campaign/design.rbs +20 -0
  52. data/sig/growsurf_ruby/resources/campaign/emails.rbs +20 -0
  53. data/sig/growsurf_ruby/resources/campaign/installation.rbs +20 -0
  54. data/sig/growsurf_ruby/resources/campaign/options.rbs +20 -0
  55. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +74 -0
  56. data/sig/growsurf_ruby/resources/campaign.rbs +34 -0
  57. metadata +41 -2
@@ -0,0 +1,309 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class RewardUpdateParams < 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::RewardUpdateParams,
14
+ GrowsurfRuby::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :campaign_reward_id
23
+
24
+ sig { returns(T.nilable(GrowsurfRuby::CommissionStructure)) }
25
+ attr_reader :commission_structure
26
+
27
+ sig do
28
+ params(
29
+ commission_structure: GrowsurfRuby::CommissionStructure::OrHash
30
+ ).void
31
+ end
32
+ attr_writer :commission_structure
33
+
34
+ sig { returns(T.nilable(Integer)) }
35
+ attr_reader :conversions_required
36
+
37
+ sig { params(conversions_required: Integer).void }
38
+ attr_writer :conversions_required
39
+
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :coupon_code
42
+
43
+ sig { params(coupon_code: String).void }
44
+ attr_writer :coupon_code
45
+
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :description
48
+
49
+ sig { params(description: String).void }
50
+ attr_writer :description
51
+
52
+ sig { returns(T.nilable(String)) }
53
+ attr_reader :image_url
54
+
55
+ sig { params(image_url: String).void }
56
+ attr_writer :image_url
57
+
58
+ sig { returns(T.nilable(T::Boolean)) }
59
+ attr_reader :is_active
60
+
61
+ sig { params(is_active: T::Boolean).void }
62
+ attr_writer :is_active
63
+
64
+ sig { returns(T.nilable(T::Boolean)) }
65
+ attr_reader :is_unlimited
66
+
67
+ sig { params(is_unlimited: T::Boolean).void }
68
+ attr_writer :is_unlimited
69
+
70
+ sig { returns(T.nilable(T::Boolean)) }
71
+ attr_reader :is_visible
72
+
73
+ sig { params(is_visible: T::Boolean).void }
74
+ attr_writer :is_visible
75
+
76
+ sig { returns(T.nilable(Integer)) }
77
+ attr_reader :limit
78
+
79
+ sig { params(limit: Integer).void }
80
+ attr_writer :limit
81
+
82
+ sig do
83
+ returns(
84
+ T.nilable(
85
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::OrSymbol
86
+ )
87
+ )
88
+ end
89
+ attr_reader :limit_duration
90
+
91
+ sig do
92
+ params(
93
+ limit_duration:
94
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::OrSymbol
95
+ ).void
96
+ end
97
+ attr_writer :limit_duration
98
+
99
+ # Custom key/value metadata (single-level; values are stored as strings).
100
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
101
+ attr_reader :metadata
102
+
103
+ sig { params(metadata: T::Hash[Symbol, T.anything]).void }
104
+ attr_writer :metadata
105
+
106
+ sig { returns(T.nilable(String)) }
107
+ attr_reader :next_milestone_prefix
108
+
109
+ sig { params(next_milestone_prefix: String).void }
110
+ attr_writer :next_milestone_prefix
111
+
112
+ sig { returns(T.nilable(String)) }
113
+ attr_reader :next_milestone_suffix
114
+
115
+ sig { params(next_milestone_suffix: String).void }
116
+ attr_writer :next_milestone_suffix
117
+
118
+ sig { returns(T.nilable(Integer)) }
119
+ attr_reader :number_of_winners
120
+
121
+ sig { params(number_of_winners: Integer).void }
122
+ attr_writer :number_of_winners
123
+
124
+ sig { returns(T.nilable(Integer)) }
125
+ attr_reader :order
126
+
127
+ sig { params(order: Integer).void }
128
+ attr_writer :order
129
+
130
+ sig { returns(T.nilable(String)) }
131
+ attr_reader :referral_coupon_code
132
+
133
+ sig { params(referral_coupon_code: String).void }
134
+ attr_writer :referral_coupon_code
135
+
136
+ sig { returns(T.nilable(String)) }
137
+ attr_reader :referral_description
138
+
139
+ sig { params(referral_description: String).void }
140
+ attr_writer :referral_description
141
+
142
+ sig { returns(T.nilable(T::Boolean)) }
143
+ attr_reader :referred_reward_upfront
144
+
145
+ sig { params(referred_reward_upfront: T::Boolean).void }
146
+ attr_writer :referred_reward_upfront
147
+
148
+ # Tax valuation for the referred friend's side of a double-sided reward.
149
+ # Defaults to not tax-reportable (a purchase rebate).
150
+ sig { returns(T.nilable(GrowsurfRuby::RewardTaxValuation)) }
151
+ attr_reader :referred_value
152
+
153
+ sig do
154
+ params(referred_value: GrowsurfRuby::RewardTaxValuation::OrHash).void
155
+ end
156
+ attr_writer :referred_value
157
+
158
+ sig { returns(T.nilable(String)) }
159
+ attr_reader :title
160
+
161
+ sig { params(title: String).void }
162
+ attr_writer :title
163
+
164
+ # Tax valuation for the reward (the referrer's side of a double-sided reward).
165
+ # Used by tax documentation / 1099 reporting.
166
+ sig { returns(T.nilable(GrowsurfRuby::RewardTaxValuation)) }
167
+ attr_reader :value
168
+
169
+ sig { params(value: GrowsurfRuby::RewardTaxValuation::OrHash).void }
170
+ attr_writer :value
171
+
172
+ sig do
173
+ params(
174
+ id: String,
175
+ campaign_reward_id: String,
176
+ commission_structure: GrowsurfRuby::CommissionStructure::OrHash,
177
+ conversions_required: Integer,
178
+ coupon_code: String,
179
+ description: String,
180
+ image_url: String,
181
+ is_active: T::Boolean,
182
+ is_unlimited: T::Boolean,
183
+ is_visible: T::Boolean,
184
+ limit: Integer,
185
+ limit_duration:
186
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::OrSymbol,
187
+ metadata: T::Hash[Symbol, T.anything],
188
+ next_milestone_prefix: String,
189
+ next_milestone_suffix: String,
190
+ number_of_winners: Integer,
191
+ order: Integer,
192
+ referral_coupon_code: String,
193
+ referral_description: String,
194
+ referred_reward_upfront: T::Boolean,
195
+ referred_value: GrowsurfRuby::RewardTaxValuation::OrHash,
196
+ title: String,
197
+ value: GrowsurfRuby::RewardTaxValuation::OrHash,
198
+ request_options: GrowsurfRuby::RequestOptions::OrHash
199
+ ).returns(T.attached_class)
200
+ end
201
+ def self.new(
202
+ id:,
203
+ campaign_reward_id:,
204
+ commission_structure: nil,
205
+ conversions_required: nil,
206
+ coupon_code: nil,
207
+ description: nil,
208
+ image_url: nil,
209
+ is_active: nil,
210
+ is_unlimited: nil,
211
+ is_visible: nil,
212
+ limit: nil,
213
+ limit_duration: nil,
214
+ # Custom key/value metadata (single-level; values are stored as strings).
215
+ metadata: nil,
216
+ next_milestone_prefix: nil,
217
+ next_milestone_suffix: nil,
218
+ number_of_winners: nil,
219
+ order: nil,
220
+ referral_coupon_code: nil,
221
+ referral_description: nil,
222
+ referred_reward_upfront: nil,
223
+ # Tax valuation for the referred friend's side of a double-sided reward.
224
+ # Defaults to not tax-reportable (a purchase rebate).
225
+ referred_value: nil,
226
+ title: nil,
227
+ # Tax valuation for the reward (the referrer's side of a double-sided reward).
228
+ # Used by tax documentation / 1099 reporting.
229
+ value: nil,
230
+ request_options: {}
231
+ )
232
+ end
233
+
234
+ sig do
235
+ override.returns(
236
+ {
237
+ id: String,
238
+ campaign_reward_id: String,
239
+ commission_structure: GrowsurfRuby::CommissionStructure::OrHash,
240
+ conversions_required: Integer,
241
+ coupon_code: String,
242
+ description: String,
243
+ image_url: String,
244
+ is_active: T::Boolean,
245
+ is_unlimited: T::Boolean,
246
+ is_visible: T::Boolean,
247
+ limit: Integer,
248
+ limit_duration:
249
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::OrSymbol,
250
+ metadata: T::Hash[Symbol, T.anything],
251
+ next_milestone_prefix: String,
252
+ next_milestone_suffix: String,
253
+ number_of_winners: Integer,
254
+ order: Integer,
255
+ referral_coupon_code: String,
256
+ referral_description: String,
257
+ referred_reward_upfront: T::Boolean,
258
+ referred_value: GrowsurfRuby::RewardTaxValuation::OrHash,
259
+ title: String,
260
+ value: GrowsurfRuby::RewardTaxValuation::OrHash,
261
+ request_options: GrowsurfRuby::RequestOptions
262
+ }
263
+ )
264
+ end
265
+ def to_hash
266
+ end
267
+
268
+ module LimitDuration
269
+ extend GrowsurfRuby::Internal::Type::Enum
270
+
271
+ TaggedSymbol =
272
+ T.type_alias do
273
+ T.all(
274
+ Symbol,
275
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration
276
+ )
277
+ end
278
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
279
+
280
+ IN_TOTAL =
281
+ T.let(
282
+ :IN_TOTAL,
283
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::TaggedSymbol
284
+ )
285
+ PER_MONTH =
286
+ T.let(
287
+ :PER_MONTH,
288
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::TaggedSymbol
289
+ )
290
+ PER_YEAR =
291
+ T.let(
292
+ :PER_YEAR,
293
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::TaggedSymbol
294
+ )
295
+
296
+ sig do
297
+ override.returns(
298
+ T::Array[
299
+ GrowsurfRuby::Models::Campaign::RewardUpdateParams::LimitDuration::TaggedSymbol
300
+ ]
301
+ )
302
+ end
303
+ def self.values
304
+ end
305
+ end
306
+ end
307
+ end
308
+ end
309
+ end
@@ -164,6 +164,10 @@ module GrowsurfRuby
164
164
  sig { returns(T.nilable(Integer)) }
165
165
  attr_accessor :order
166
166
 
167
+ # The coupon code delivered to the referred friend (double-sided rewards).
168
+ sig { returns(T.nilable(String)) }
169
+ attr_accessor :referral_coupon_code
170
+
167
171
  sig { returns(T.nilable(String)) }
168
172
  attr_accessor :referral_description
169
173
 
@@ -173,6 +177,28 @@ module GrowsurfRuby
173
177
  sig { params(referred_reward_upfront: T::Boolean).void }
174
178
  attr_writer :referred_reward_upfront
175
179
 
180
+ # Tax valuation for the referred friend's side of a double-sided reward.
181
+ sig { returns(T.nilable(GrowsurfRuby::RewardTaxValuation)) }
182
+ attr_reader :referred_value
183
+
184
+ sig do
185
+ params(
186
+ referred_value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
187
+ ).void
188
+ end
189
+ attr_writer :referred_value
190
+
191
+ # Tax valuation for the reward (the referrer's side of a double-sided reward).
192
+ sig { returns(T.nilable(GrowsurfRuby::RewardTaxValuation)) }
193
+ attr_reader :value
194
+
195
+ sig do
196
+ params(
197
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
198
+ ).void
199
+ end
200
+ attr_writer :value
201
+
176
202
  sig do
177
203
  params(
178
204
  id: String,
@@ -194,8 +220,12 @@ module GrowsurfRuby
194
220
  next_milestone_suffix: T.nilable(String),
195
221
  number_of_winners: T.nilable(Integer),
196
222
  order: T.nilable(Integer),
223
+ referral_coupon_code: T.nilable(String),
197
224
  referral_description: T.nilable(String),
198
- referred_reward_upfront: T::Boolean
225
+ referred_reward_upfront: T::Boolean,
226
+ referred_value:
227
+ T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash),
228
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation::OrHash)
199
229
  ).returns(T.attached_class)
200
230
  end
201
231
  def self.new(
@@ -216,8 +246,14 @@ module GrowsurfRuby
216
246
  next_milestone_suffix: nil,
217
247
  number_of_winners: nil,
218
248
  order: nil,
249
+ # The coupon code delivered to the referred friend (double-sided rewards).
250
+ referral_coupon_code: nil,
219
251
  referral_description: nil,
220
- referred_reward_upfront: nil
252
+ referred_reward_upfront: nil,
253
+ # Tax valuation for the referred friend's side of a double-sided reward.
254
+ referred_value: nil,
255
+ # Tax valuation for the reward (the referrer's side of a double-sided reward).
256
+ value: nil
221
257
  )
222
258
  end
223
259
 
@@ -243,8 +279,11 @@ module GrowsurfRuby
243
279
  next_milestone_suffix: T.nilable(String),
244
280
  number_of_winners: T.nilable(Integer),
245
281
  order: T.nilable(Integer),
282
+ referral_coupon_code: T.nilable(String),
246
283
  referral_description: T.nilable(String),
247
- referred_reward_upfront: T::Boolean
284
+ referred_reward_upfront: T::Boolean,
285
+ referred_value: T.nilable(GrowsurfRuby::RewardTaxValuation),
286
+ value: T.nilable(GrowsurfRuby::RewardTaxValuation)
248
287
  }
249
288
  )
250
289
  end
@@ -0,0 +1,125 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ class CampaignCreateParams < GrowsurfRuby::Internal::Type::BaseModel
6
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
7
+ include GrowsurfRuby::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ GrowsurfRuby::CampaignCreateParams,
13
+ GrowsurfRuby::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(GrowsurfRuby::CampaignCreateParams::Type::OrSymbol) }
18
+ attr_accessor :type
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :company_logo_image_url
22
+
23
+ sig { params(company_logo_image_url: String).void }
24
+ attr_writer :company_logo_image_url
25
+
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :company_name
28
+
29
+ sig { params(company_name: String).void }
30
+ attr_writer :company_name
31
+
32
+ sig { returns(T.nilable(String)) }
33
+ attr_reader :currency_iso
34
+
35
+ sig { params(currency_iso: String).void }
36
+ attr_writer :currency_iso
37
+
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :name
40
+
41
+ sig { params(name: String).void }
42
+ attr_writer :name
43
+
44
+ sig do
45
+ returns(T.nilable(T::Array[GrowsurfRuby::Campaign::RewardCreateParams]))
46
+ end
47
+ attr_reader :rewards
48
+
49
+ sig do
50
+ params(
51
+ rewards: T::Array[GrowsurfRuby::Campaign::RewardCreateParams::OrHash]
52
+ ).void
53
+ end
54
+ attr_writer :rewards
55
+
56
+ sig do
57
+ params(
58
+ type: GrowsurfRuby::CampaignCreateParams::Type::OrSymbol,
59
+ company_logo_image_url: String,
60
+ company_name: String,
61
+ currency_iso: String,
62
+ name: String,
63
+ rewards: T::Array[GrowsurfRuby::Campaign::RewardCreateParams::OrHash],
64
+ request_options: GrowsurfRuby::RequestOptions::OrHash
65
+ ).returns(T.attached_class)
66
+ end
67
+ def self.new(
68
+ type:,
69
+ company_logo_image_url: nil,
70
+ company_name: nil,
71
+ currency_iso: nil,
72
+ name: nil,
73
+ rewards: nil,
74
+ request_options: {}
75
+ )
76
+ end
77
+
78
+ sig do
79
+ override.returns(
80
+ {
81
+ type: GrowsurfRuby::CampaignCreateParams::Type::OrSymbol,
82
+ company_logo_image_url: String,
83
+ company_name: String,
84
+ currency_iso: String,
85
+ name: String,
86
+ rewards:
87
+ T::Array[GrowsurfRuby::Campaign::RewardCreateParams::OrHash],
88
+ request_options: GrowsurfRuby::RequestOptions
89
+ }
90
+ )
91
+ end
92
+ def to_hash
93
+ end
94
+
95
+ module Type
96
+ extend GrowsurfRuby::Internal::Type::Enum
97
+
98
+ TaggedSymbol =
99
+ T.type_alias do
100
+ T.all(Symbol, GrowsurfRuby::CampaignCreateParams::Type)
101
+ end
102
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
103
+
104
+ REFERRAL =
105
+ T.let(
106
+ :REFERRAL,
107
+ GrowsurfRuby::CampaignCreateParams::Type::TaggedSymbol
108
+ )
109
+ AFFILIATE =
110
+ T.let(
111
+ :AFFILIATE,
112
+ GrowsurfRuby::CampaignCreateParams::Type::TaggedSymbol
113
+ )
114
+
115
+ sig do
116
+ override.returns(
117
+ T::Array[GrowsurfRuby::CampaignCreateParams::Type::TaggedSymbol]
118
+ )
119
+ end
120
+ def self.values
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,130 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ class CampaignUpdateParams < GrowsurfRuby::Internal::Type::BaseModel
6
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
7
+ include GrowsurfRuby::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ GrowsurfRuby::CampaignUpdateParams,
13
+ GrowsurfRuby::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :company_logo_image_url
22
+
23
+ sig { params(company_logo_image_url: String).void }
24
+ attr_writer :company_logo_image_url
25
+
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :company_name
28
+
29
+ sig { params(company_name: String).void }
30
+ attr_writer :company_name
31
+
32
+ sig { returns(T.nilable(String)) }
33
+ attr_reader :name
34
+
35
+ sig { params(name: String).void }
36
+ attr_writer :name
37
+
38
+ sig do
39
+ returns(T.nilable(GrowsurfRuby::CampaignUpdateParams::Status::OrSymbol))
40
+ end
41
+ attr_reader :status
42
+
43
+ sig do
44
+ params(
45
+ status: GrowsurfRuby::CampaignUpdateParams::Status::OrSymbol
46
+ ).void
47
+ end
48
+ attr_writer :status
49
+
50
+ sig do
51
+ params(
52
+ id: String,
53
+ company_logo_image_url: String,
54
+ company_name: String,
55
+ name: String,
56
+ status: GrowsurfRuby::CampaignUpdateParams::Status::OrSymbol,
57
+ request_options: GrowsurfRuby::RequestOptions::OrHash
58
+ ).returns(T.attached_class)
59
+ end
60
+ def self.new(
61
+ id:,
62
+ company_logo_image_url: nil,
63
+ company_name: nil,
64
+ name: nil,
65
+ status: nil,
66
+ request_options: {}
67
+ )
68
+ end
69
+
70
+ sig do
71
+ override.returns(
72
+ {
73
+ id: String,
74
+ company_logo_image_url: String,
75
+ company_name: String,
76
+ name: String,
77
+ status: GrowsurfRuby::CampaignUpdateParams::Status::OrSymbol,
78
+ request_options: GrowsurfRuby::RequestOptions
79
+ }
80
+ )
81
+ end
82
+ def to_hash
83
+ end
84
+
85
+ module Status
86
+ extend GrowsurfRuby::Internal::Type::Enum
87
+
88
+ TaggedSymbol =
89
+ T.type_alias do
90
+ T.all(Symbol, GrowsurfRuby::CampaignUpdateParams::Status)
91
+ end
92
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
93
+
94
+ DRAFT =
95
+ T.let(
96
+ :DRAFT,
97
+ GrowsurfRuby::CampaignUpdateParams::Status::TaggedSymbol
98
+ )
99
+ PENDING =
100
+ T.let(
101
+ :PENDING,
102
+ GrowsurfRuby::CampaignUpdateParams::Status::TaggedSymbol
103
+ )
104
+ IN_PROGRESS =
105
+ T.let(
106
+ :IN_PROGRESS,
107
+ GrowsurfRuby::CampaignUpdateParams::Status::TaggedSymbol
108
+ )
109
+ COMPLETE =
110
+ T.let(
111
+ :COMPLETE,
112
+ GrowsurfRuby::CampaignUpdateParams::Status::TaggedSymbol
113
+ )
114
+ CANCELLED =
115
+ T.let(
116
+ :CANCELLED,
117
+ GrowsurfRuby::CampaignUpdateParams::Status::TaggedSymbol
118
+ )
119
+
120
+ sig do
121
+ override.returns(
122
+ T::Array[GrowsurfRuby::CampaignUpdateParams::Status::TaggedSymbol]
123
+ )
124
+ end
125
+ def self.values
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,56 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ # Tax valuation settings for a reward. Only relevant when the program collects
6
+ # tax documentation.
7
+ class RewardTaxValuation < GrowsurfRuby::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ GrowsurfRuby::RewardTaxValuation,
12
+ GrowsurfRuby::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # Manual fair-market value in USD (major units) used as the fallback when the
17
+ # reward value cannot be resolved automatically. `null` = no manual value.
18
+ sig { returns(T.nilable(Float)) }
19
+ attr_accessor :fair_market_value_usd
20
+
21
+ # Whether the reward's value counts toward 1099 thresholds/totals. `null` = use
22
+ # the smart default for the reward's source.
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_accessor :is_tax_reportable
25
+
26
+ # Tax valuation settings for a reward. Only relevant when the program collects
27
+ # tax documentation.
28
+ sig do
29
+ params(
30
+ fair_market_value_usd: T.nilable(Float),
31
+ is_tax_reportable: T.nilable(T::Boolean)
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(
35
+ # Manual fair-market value in USD (major units) used as the fallback when the
36
+ # reward value cannot be resolved automatically. `null` = no manual value.
37
+ fair_market_value_usd: nil,
38
+ # Whether the reward's value counts toward 1099 thresholds/totals. `null` = use
39
+ # the smart default for the reward's source.
40
+ is_tax_reportable: nil
41
+ )
42
+ end
43
+
44
+ sig do
45
+ override.returns(
46
+ {
47
+ fair_market_value_usd: T.nilable(Float),
48
+ is_tax_reportable: T.nilable(T::Boolean)
49
+ }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+ end
55
+ end
56
+ end