growsurf-ruby 0.2.0 → 0.3.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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +9 -9
  4. data/lib/growsurf_ruby/models/campaign/create.rb +81 -0
  5. data/lib/growsurf_ruby/models/campaign/participant_add_params.rb +2 -73
  6. data/lib/growsurf_ruby/models/campaign_create_mobile_participant_token_params.rb +20 -0
  7. data/lib/growsurf_ruby/models/campaign_create_mobile_participant_token_response.rb +45 -0
  8. data/lib/growsurf_ruby/models.rb +3 -0
  9. data/lib/growsurf_ruby/resources/campaign/participant.rb +1 -29
  10. data/lib/growsurf_ruby/resources/campaign.rb +41 -0
  11. data/lib/growsurf_ruby/version.rb +1 -1
  12. data/lib/growsurf_ruby.rb +3 -2
  13. data/rbi/growsurf_ruby/models/campaign/create.rbi +149 -0
  14. data/rbi/growsurf_ruby/models/campaign/participant_add_params.rbi +3 -129
  15. data/rbi/growsurf_ruby/models/campaign_create_mobile_participant_token_params.rbi +38 -0
  16. data/rbi/growsurf_ruby/models/campaign_create_mobile_participant_token_response.rbi +71 -0
  17. data/rbi/growsurf_ruby/models.rbi +3 -0
  18. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +1 -21
  19. data/rbi/growsurf_ruby/resources/campaign.rbi +38 -0
  20. data/sig/growsurf_ruby/models/campaign/create.rbs +84 -0
  21. data/sig/growsurf_ruby/models/campaign/participant_add_params.rbs +4 -72
  22. data/sig/growsurf_ruby/models/campaign_create_mobile_participant_token_params.rbs +25 -0
  23. data/sig/growsurf_ruby/models/campaign_create_mobile_participant_token_response.rbs +35 -0
  24. data/sig/growsurf_ruby/models.rbs +2 -0
  25. data/sig/growsurf_ruby/resources/campaign/participant.rbs +1 -7
  26. data/sig/growsurf_ruby/resources/campaign.rbs +13 -0
  27. metadata +11 -8
  28. data/lib/growsurf_ruby/models/campaign/participant_create_mobile_token_params.rb +0 -28
  29. data/lib/growsurf_ruby/models/campaign/participant_create_mobile_token_response.rb +0 -27
  30. data/rbi/growsurf_ruby/models/campaign/participant_create_mobile_token_params.rbi +0 -48
  31. data/rbi/growsurf_ruby/models/campaign/participant_create_mobile_token_response.rbi +0 -44
  32. data/sig/growsurf_ruby/models/campaign/participant_create_mobile_token_params.rbs +0 -30
  33. data/sig/growsurf_ruby/models/campaign/participant_create_mobile_token_response.rbs +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 981bbbfa4ff94476ccd32bd8c6c6e3b162f299b595917e4203453b63075c5b49
4
- data.tar.gz: b60479fec6ed1cee05057a5fabd06542c1315f47bda95d3aab1eeb4ba24ad6e4
3
+ metadata.gz: 605534d947eac522a949503f9572694007413ef9040a32a96bea535a2584be47
4
+ data.tar.gz: aef15c880bbfa43c46f5c29f5299179909325b12d7211e1320a03cab1d28a6fe
5
5
  SHA512:
6
- metadata.gz: ed43b241c7fbf84392eeb93107946c6456eb26c9014a65660999c0523faa11a701cf6f54c51607a8e788c0c5ec96fc8f5fbbd50515012f3235a31097241da3f3
7
- data.tar.gz: 260c56e29c5f066f4e778c9c709007a93a64aba501ec13abc4c77bb29ff77702a388ffb103c444c5600ef02ac9e15dcce3ee2160150b490393479d6bc4d3b185
6
+ metadata.gz: 06c6a1595b1d6778efd78c9d01237364471f023f2163d8f3b663aaa27cdf684d1d0ea714023b03b2398d65a07b971fd5902712640016166dee9e116c35f40580
7
+ data.tar.gz: 3761201606953175d138cbed0e948d6e2b069183e9584faefe841f9dfe7a0a9c5d9f0e190c69776bb1cf424f872e95a23122d1ed77c55721967c73202a569160
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0 (2026-05-19)
4
+
5
+ Full Changelog: [v0.2.0...v0.3.0](https://github.com/growsurf/growsurf-ruby/compare/v0.2.0...v0.3.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** manual updates ([929f439](https://github.com/growsurf/growsurf-ruby/commit/929f4399c265598db298eb96f5ff4ac2db6b12e8))
10
+
3
11
  ## 0.2.0 (2026-05-15)
4
12
 
5
13
  Full Changelog: [v0.1.1...v0.2.0](https://github.com/growsurf/growsurf-ruby/compare/v0.1.1...v0.2.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "growsurf-ruby", "~> 0.2.0"
20
+ gem "growsurf-ruby", "~> 0.3.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -196,25 +196,25 @@ growsurf.campaign.list(**params)
196
196
  Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:
197
197
 
198
198
  ```ruby
199
- # :PENDING
200
- puts(GrowsurfRuby::CampaignListCommissionsParams::Status::PENDING)
199
+ # :CREDIT_PENDING
200
+ puts(GrowsurfRuby::Campaign::Create::ReferralStatus::CREDIT_PENDING)
201
201
 
202
- # Revealed type: `T.all(GrowsurfRuby::CampaignListCommissionsParams::Status, Symbol)`
203
- T.reveal_type(GrowsurfRuby::CampaignListCommissionsParams::Status::PENDING)
202
+ # Revealed type: `T.all(GrowsurfRuby::Campaign::Create::ReferralStatus, Symbol)`
203
+ T.reveal_type(GrowsurfRuby::Campaign::Create::ReferralStatus::CREDIT_PENDING)
204
204
  ```
205
205
 
206
206
  Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:
207
207
 
208
208
  ```ruby
209
209
  # Using the enum constants preserves the tagged type information:
210
- growsurf.campaign.list_commissions(
211
- status: GrowsurfRuby::CampaignListCommissionsParams::Status::PENDING,
210
+ growsurf.campaign.create_mobile_participant_token(
211
+ referral_status: GrowsurfRuby::Campaign::Create::ReferralStatus::CREDIT_PENDING,
212
212
  # …
213
213
  )
214
214
 
215
215
  # Literal values are also permissible:
216
- growsurf.campaign.list_commissions(
217
- status: :PENDING,
216
+ growsurf.campaign.create_mobile_participant_token(
217
+ referral_status: :CREDIT_PENDING,
218
218
  # …
219
219
  )
220
220
  ```
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class Create < GrowsurfRuby::Internal::Type::BaseModel
7
+ # @!attribute email
8
+ #
9
+ # @return [String]
10
+ required :email, String
11
+
12
+ # @!attribute fingerprint
13
+ #
14
+ # @return [String, nil]
15
+ optional :fingerprint, String
16
+
17
+ # @!attribute first_name
18
+ #
19
+ # @return [String, nil]
20
+ optional :first_name, String, api_name: :firstName
21
+
22
+ # @!attribute ip_address
23
+ #
24
+ # @return [String, nil]
25
+ optional :ip_address, String, api_name: :ipAddress
26
+
27
+ # @!attribute last_name
28
+ #
29
+ # @return [String, nil]
30
+ optional :last_name, String, api_name: :lastName
31
+
32
+ # @!attribute metadata
33
+ # Shallow custom metadata object.
34
+ #
35
+ # @return [Hash{Symbol=>Object}, nil]
36
+ optional :metadata, GrowsurfRuby::Internal::Type::HashOf[GrowsurfRuby::Internal::Type::Unknown]
37
+
38
+ # @!attribute referral_status
39
+ #
40
+ # @return [Symbol, GrowsurfRuby::Models::Campaign::Create::ReferralStatus, nil]
41
+ optional :referral_status,
42
+ enum: -> { GrowsurfRuby::Campaign::Create::ReferralStatus },
43
+ api_name: :referralStatus
44
+
45
+ # @!attribute referred_by
46
+ # Referrer participant ID or email address.
47
+ #
48
+ # @return [String, nil]
49
+ optional :referred_by, String, api_name: :referredBy
50
+
51
+ # @!method initialize(email:, fingerprint: nil, first_name: nil, ip_address: nil, last_name: nil, metadata: nil, referral_status: nil, referred_by: nil)
52
+ # @param email [String]
53
+ #
54
+ # @param fingerprint [String]
55
+ #
56
+ # @param first_name [String]
57
+ #
58
+ # @param ip_address [String]
59
+ #
60
+ # @param last_name [String]
61
+ #
62
+ # @param metadata [Hash{Symbol=>Object}] Shallow custom metadata object.
63
+ #
64
+ # @param referral_status [Symbol, GrowsurfRuby::Models::Campaign::Create::ReferralStatus]
65
+ #
66
+ # @param referred_by [String] Referrer participant ID or email address.
67
+
68
+ # @see GrowsurfRuby::Models::Campaign::Create#referral_status
69
+ module ReferralStatus
70
+ extend GrowsurfRuby::Internal::Type::Enum
71
+
72
+ CREDIT_PENDING = :CREDIT_PENDING
73
+ CREDIT_AWARDED = :CREDIT_AWARDED
74
+
75
+ # @!method self.values
76
+ # @return [Array<Symbol>]
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -4,7 +4,7 @@ module GrowsurfRuby
4
4
  module Models
5
5
  module Campaign
6
6
  # @see GrowsurfRuby::Resources::Campaign::Participant#add
7
- class ParticipantAddParams < GrowsurfRuby::Internal::Type::BaseModel
7
+ class ParticipantAddParams < GrowsurfRuby::Models::Campaign::Create
8
8
  extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
9
9
  include GrowsurfRuby::Internal::Type::RequestParameters
10
10
 
@@ -13,80 +13,9 @@ module GrowsurfRuby
13
13
  # @return [String]
14
14
  required :id, String
15
15
 
16
- # @!attribute email
17
- #
18
- # @return [String]
19
- required :email, String
20
-
21
- # @!attribute fingerprint
22
- #
23
- # @return [String, nil]
24
- optional :fingerprint, String
25
-
26
- # @!attribute first_name
27
- #
28
- # @return [String, nil]
29
- optional :first_name, String, api_name: :firstName
30
-
31
- # @!attribute ip_address
32
- #
33
- # @return [String, nil]
34
- optional :ip_address, String, api_name: :ipAddress
35
-
36
- # @!attribute last_name
37
- #
38
- # @return [String, nil]
39
- optional :last_name, String, api_name: :lastName
40
-
41
- # @!attribute metadata
42
- # Shallow custom metadata object.
43
- #
44
- # @return [Hash{Symbol=>Object}, nil]
45
- optional :metadata, GrowsurfRuby::Internal::Type::HashOf[GrowsurfRuby::Internal::Type::Unknown]
46
-
47
- # @!attribute referral_status
48
- #
49
- # @return [Symbol, GrowsurfRuby::Models::Campaign::ParticipantAddParams::ReferralStatus, nil]
50
- optional :referral_status,
51
- enum: -> { GrowsurfRuby::Campaign::ParticipantAddParams::ReferralStatus },
52
- api_name: :referralStatus
53
-
54
- # @!attribute referred_by
55
- # Referrer participant ID or email address.
56
- #
57
- # @return [String, nil]
58
- optional :referred_by, String, api_name: :referredBy
59
-
60
- # @!method initialize(id:, email:, fingerprint: nil, first_name: nil, ip_address: nil, last_name: nil, metadata: nil, referral_status: nil, referred_by: nil, request_options: {})
16
+ # @!method initialize(id:, request_options: {})
61
17
  # @param id [String]
62
- #
63
- # @param email [String]
64
- #
65
- # @param fingerprint [String]
66
- #
67
- # @param first_name [String]
68
- #
69
- # @param ip_address [String]
70
- #
71
- # @param last_name [String]
72
- #
73
- # @param metadata [Hash{Symbol=>Object}] Shallow custom metadata object.
74
- #
75
- # @param referral_status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantAddParams::ReferralStatus]
76
- #
77
- # @param referred_by [String] Referrer participant ID or email address.
78
- #
79
18
  # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
80
-
81
- module ReferralStatus
82
- extend GrowsurfRuby::Internal::Type::Enum
83
-
84
- CREDIT_PENDING = :CREDIT_PENDING
85
- CREDIT_AWARDED = :CREDIT_AWARDED
86
-
87
- # @!method self.values
88
- # @return [Array<Symbol>]
89
- end
90
19
  end
91
20
  end
92
21
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ # @see GrowsurfRuby::Resources::Campaign#create_mobile_participant_token
6
+ class CampaignCreateMobileParticipantTokenParams < GrowsurfRuby::Models::Campaign::Create
7
+ extend GrowsurfRuby::Internal::Type::RequestParameters::Converter
8
+ include GrowsurfRuby::Internal::Type::RequestParameters
9
+
10
+ # @!attribute id
11
+ #
12
+ # @return [String]
13
+ required :id, String
14
+
15
+ # @!method initialize(id:, request_options: {})
16
+ # @param id [String]
17
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ # @see GrowsurfRuby::Resources::Campaign#create_mobile_participant_token
6
+ class CampaignCreateMobileParticipantTokenResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ # @!attribute expires_in
8
+ # Token lifetime in seconds.
9
+ #
10
+ # @return [Integer]
11
+ required :expires_in, Integer, api_name: :expiresIn
12
+
13
+ # @!attribute is_new
14
+ # Whether this request created a new participant. Returns false when the
15
+ # participant already existed.
16
+ #
17
+ # @return [Boolean]
18
+ required :is_new, GrowsurfRuby::Internal::Type::Boolean, api_name: :isNew
19
+
20
+ # @!attribute participant
21
+ #
22
+ # @return [GrowsurfRuby::Models::Campaign::CampaignParticipant]
23
+ required :participant, -> { GrowsurfRuby::Campaign::CampaignParticipant }
24
+
25
+ # @!attribute participant_token
26
+ # Participant-scoped bearer token for GrowSurf mobile SDK participant endpoints.
27
+ #
28
+ # @return [String]
29
+ required :participant_token, String, api_name: :participantToken
30
+
31
+ # @!method initialize(expires_in:, is_new:, participant:, participant_token:)
32
+ # Some parameter documentations has been truncated, see
33
+ # {GrowsurfRuby::Models::CampaignCreateMobileParticipantTokenResponse} for more
34
+ # details.
35
+ #
36
+ # @param expires_in [Integer] Token lifetime in seconds.
37
+ #
38
+ # @param is_new [Boolean] Whether this request created a new participant. Returns false when the participa
39
+ #
40
+ # @param participant [GrowsurfRuby::Models::Campaign::CampaignParticipant]
41
+ #
42
+ # @param participant_token [String] Participant-scoped bearer token for GrowSurf mobile SDK participant endpoints.
43
+ end
44
+ end
45
+ end
@@ -43,6 +43,9 @@ module GrowsurfRuby
43
43
 
44
44
  CampaignAPI = GrowsurfRuby::Models::CampaignAPI
45
45
 
46
+ CampaignCreateMobileParticipantTokenParams =
47
+ GrowsurfRuby::Models::CampaignCreateMobileParticipantTokenParams
48
+
46
49
  CampaignListCommissionsParams = GrowsurfRuby::Models::CampaignListCommissionsParams
47
50
 
48
51
  CampaignListLeaderboardParams = GrowsurfRuby::Models::CampaignListLeaderboardParams
@@ -121,7 +121,7 @@ module GrowsurfRuby
121
121
  #
122
122
  # @param metadata [Hash{Symbol=>Object}] Shallow custom metadata object.
123
123
  #
124
- # @param referral_status [Symbol, GrowsurfRuby::Models::Campaign::ParticipantAddParams::ReferralStatus]
124
+ # @param referral_status [Symbol, GrowsurfRuby::Models::Campaign::Create::ReferralStatus]
125
125
  #
126
126
  # @param referred_by [String] Referrer participant ID or email address.
127
127
  #
@@ -141,34 +141,6 @@ module GrowsurfRuby
141
141
  )
142
142
  end
143
143
 
144
- # Creates a participant-scoped token for GrowSurf mobile SDK participant
145
- # endpoints. The program must have mobile SDK access enabled.
146
- #
147
- # @overload create_mobile_token(participant_id_or_email, id:, request_options: {})
148
- #
149
- # @param participant_id_or_email [String] GrowSurf participant ID or URL-encoded participant email address.
150
- #
151
- # @param id [String] GrowSurf program ID.
152
- #
153
- # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
154
- #
155
- # @return [GrowsurfRuby::Models::Campaign::ParticipantCreateMobileTokenResponse]
156
- #
157
- # @see GrowsurfRuby::Models::Campaign::ParticipantCreateMobileTokenParams
158
- def create_mobile_token(participant_id_or_email, params)
159
- parsed, options = GrowsurfRuby::Campaign::ParticipantCreateMobileTokenParams.dump_request(params)
160
- id =
161
- parsed.delete(:id) do
162
- raise ArgumentError.new("missing required path argument #{_1}")
163
- end
164
- @client.request(
165
- method: :post,
166
- path: ["campaign/%1$s/participant/%2$s/mobile-token", id, participant_id_or_email],
167
- model: GrowsurfRuby::Models::Campaign::ParticipantCreateMobileTokenResponse,
168
- options: options
169
- )
170
- end
171
-
172
144
  # Retrieves a paged list of commissions earned by a participant.
173
145
  #
174
146
  # @overload list_commissions(participant_id_or_email, id:, limit: nil, next_id: nil, status: nil, request_options: {})
@@ -52,6 +52,47 @@ module GrowsurfRuby
52
52
  )
53
53
  end
54
54
 
55
+ # Creates or returns a participant using the same input behavior as Add
56
+ # Participant, then returns a participant-scoped token for GrowSurf mobile SDK
57
+ # participant endpoints. Use this endpoint from your backend after your mobile app
58
+ # authenticates a signed-in user. The program must have mobile SDK access enabled.
59
+ #
60
+ # @overload create_mobile_participant_token(id, email:, fingerprint: nil, first_name: nil, ip_address: nil, last_name: nil, metadata: nil, referral_status: nil, referred_by: nil, request_options: {})
61
+ #
62
+ # @param id [String] GrowSurf program ID.
63
+ #
64
+ # @param email [String]
65
+ #
66
+ # @param fingerprint [String]
67
+ #
68
+ # @param first_name [String]
69
+ #
70
+ # @param ip_address [String]
71
+ #
72
+ # @param last_name [String]
73
+ #
74
+ # @param metadata [Hash{Symbol=>Object}] Shallow custom metadata object.
75
+ #
76
+ # @param referral_status [Symbol, GrowsurfRuby::Models::Campaign::Create::ReferralStatus]
77
+ #
78
+ # @param referred_by [String] Referrer participant ID or email address.
79
+ #
80
+ # @param request_options [GrowsurfRuby::RequestOptions, Hash{Symbol=>Object}, nil]
81
+ #
82
+ # @return [GrowsurfRuby::Models::CampaignCreateMobileParticipantTokenResponse]
83
+ #
84
+ # @see GrowsurfRuby::Models::CampaignCreateMobileParticipantTokenParams
85
+ def create_mobile_participant_token(id, params)
86
+ parsed, options = GrowsurfRuby::CampaignCreateMobileParticipantTokenParams.dump_request(params)
87
+ @client.request(
88
+ method: :post,
89
+ path: ["campaign/%1$s/mobile-participant-token", id],
90
+ body: parsed,
91
+ model: GrowsurfRuby::Models::CampaignCreateMobileParticipantTokenResponse,
92
+ options: options
93
+ )
94
+ end
95
+
55
96
  # Retrieves a paged list of all participant commissions in an affiliate program.
56
97
  #
57
98
  # @overload list_commissions(id, limit: nil, next_id: nil, status: nil, request_options: {})
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GrowsurfRuby
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
data/lib/growsurf_ruby.rb CHANGED
@@ -52,6 +52,7 @@ require_relative "growsurf_ruby/errors"
52
52
  require_relative "growsurf_ruby/internal/transport/base_client"
53
53
  require_relative "growsurf_ruby/internal/transport/pooled_net_requester"
54
54
  require_relative "growsurf_ruby/client"
55
+ require_relative "growsurf_ruby/models/campaign/create"
55
56
  require_relative "growsurf_ruby/models/campaign/participant"
56
57
  require_relative "growsurf_ruby/models/campaign/commission_approve_params"
57
58
  require_relative "growsurf_ruby/models/campaign/commission_approve_response"
@@ -59,8 +60,6 @@ require_relative "growsurf_ruby/models/campaign/commission_delete_params"
59
60
  require_relative "growsurf_ruby/models/campaign/commission_delete_response"
60
61
  require_relative "growsurf_ruby/models/campaign/fraud_risk_level"
61
62
  require_relative "growsurf_ruby/models/campaign/participant_add_params"
62
- require_relative "growsurf_ruby/models/campaign/participant_create_mobile_token_params"
63
- require_relative "growsurf_ruby/models/campaign/participant_create_mobile_token_response"
64
63
  require_relative "growsurf_ruby/models/campaign/participant_delete_params"
65
64
  require_relative "growsurf_ruby/models/campaign/participant_delete_response"
66
65
  require_relative "growsurf_ruby/models/campaign/participant_list_commissions_params"
@@ -86,6 +85,8 @@ require_relative "growsurf_ruby/models/campaign/reward_delete_response"
86
85
  require_relative "growsurf_ruby/models/campaign/reward_fulfill_params"
87
86
  require_relative "growsurf_ruby/models/campaign/reward_fulfill_response"
88
87
  require_relative "growsurf_ruby/models/campaign"
88
+ require_relative "growsurf_ruby/models/campaign_create_mobile_participant_token_params"
89
+ require_relative "growsurf_ruby/models/campaign_create_mobile_participant_token_response"
89
90
  require_relative "growsurf_ruby/models/campaign_list_commissions_params"
90
91
  require_relative "growsurf_ruby/models/campaign_list_leaderboard_params"
91
92
  require_relative "growsurf_ruby/models/campaign_list_params"
@@ -0,0 +1,149 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class Create < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Campaign::Create,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(String) }
16
+ attr_accessor :email
17
+
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :fingerprint
20
+
21
+ sig { params(fingerprint: String).void }
22
+ attr_writer :fingerprint
23
+
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :first_name
26
+
27
+ sig { params(first_name: String).void }
28
+ attr_writer :first_name
29
+
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :ip_address
32
+
33
+ sig { params(ip_address: String).void }
34
+ attr_writer :ip_address
35
+
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :last_name
38
+
39
+ sig { params(last_name: String).void }
40
+ attr_writer :last_name
41
+
42
+ # Shallow custom metadata object.
43
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
44
+ attr_reader :metadata
45
+
46
+ sig { params(metadata: T::Hash[Symbol, T.anything]).void }
47
+ attr_writer :metadata
48
+
49
+ sig do
50
+ returns(
51
+ T.nilable(GrowsurfRuby::Campaign::Create::ReferralStatus::OrSymbol)
52
+ )
53
+ end
54
+ attr_reader :referral_status
55
+
56
+ sig do
57
+ params(
58
+ referral_status:
59
+ GrowsurfRuby::Campaign::Create::ReferralStatus::OrSymbol
60
+ ).void
61
+ end
62
+ attr_writer :referral_status
63
+
64
+ # Referrer participant ID or email address.
65
+ sig { returns(T.nilable(String)) }
66
+ attr_reader :referred_by
67
+
68
+ sig { params(referred_by: String).void }
69
+ attr_writer :referred_by
70
+
71
+ sig do
72
+ params(
73
+ email: String,
74
+ fingerprint: String,
75
+ first_name: String,
76
+ ip_address: String,
77
+ last_name: String,
78
+ metadata: T::Hash[Symbol, T.anything],
79
+ referral_status:
80
+ GrowsurfRuby::Campaign::Create::ReferralStatus::OrSymbol,
81
+ referred_by: String
82
+ ).returns(T.attached_class)
83
+ end
84
+ def self.new(
85
+ email:,
86
+ fingerprint: nil,
87
+ first_name: nil,
88
+ ip_address: nil,
89
+ last_name: nil,
90
+ # Shallow custom metadata object.
91
+ metadata: nil,
92
+ referral_status: nil,
93
+ # Referrer participant ID or email address.
94
+ referred_by: nil
95
+ )
96
+ end
97
+
98
+ sig do
99
+ override.returns(
100
+ {
101
+ email: String,
102
+ fingerprint: String,
103
+ first_name: String,
104
+ ip_address: String,
105
+ last_name: String,
106
+ metadata: T::Hash[Symbol, T.anything],
107
+ referral_status:
108
+ GrowsurfRuby::Campaign::Create::ReferralStatus::OrSymbol,
109
+ referred_by: String
110
+ }
111
+ )
112
+ end
113
+ def to_hash
114
+ end
115
+
116
+ module ReferralStatus
117
+ extend GrowsurfRuby::Internal::Type::Enum
118
+
119
+ TaggedSymbol =
120
+ T.type_alias do
121
+ T.all(Symbol, GrowsurfRuby::Campaign::Create::ReferralStatus)
122
+ end
123
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
124
+
125
+ CREDIT_PENDING =
126
+ T.let(
127
+ :CREDIT_PENDING,
128
+ GrowsurfRuby::Campaign::Create::ReferralStatus::TaggedSymbol
129
+ )
130
+ CREDIT_AWARDED =
131
+ T.let(
132
+ :CREDIT_AWARDED,
133
+ GrowsurfRuby::Campaign::Create::ReferralStatus::TaggedSymbol
134
+ )
135
+
136
+ sig do
137
+ override.returns(
138
+ T::Array[
139
+ GrowsurfRuby::Campaign::Create::ReferralStatus::TaggedSymbol
140
+ ]
141
+ )
142
+ end
143
+ def self.values
144
+ end
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end