growsurf-ruby 1.4.0 → 1.5.1

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 (137) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +10 -7
  4. data/lib/growsurf_ruby/internal/transport/base_client.rb +6 -1
  5. data/lib/growsurf_ruby/internal/type/base_model.rb +26 -0
  6. data/lib/growsurf_ruby/internal/type/base_page.rb +6 -0
  7. data/lib/growsurf_ruby/models/account_create_response.rb +3 -3
  8. data/lib/growsurf_ruby/models/analytics_availability.rb +16 -0
  9. data/lib/growsurf_ruby/models/analytics_unavailable_reason.rb +20 -0
  10. data/lib/growsurf_ruby/models/campaign/delete_program_resource_response.rb +12 -0
  11. data/lib/growsurf_ruby/models/campaign/integration.rb +69 -0
  12. data/lib/growsurf_ruby/models/campaign/integration_list_response.rb +24 -0
  13. data/lib/growsurf_ruby/models/campaign/participant_activation_analytics.rb +75 -0
  14. data/lib/growsurf_ruby/models/campaign/participant_analytics_response.rb +11 -0
  15. data/lib/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rb +17 -17
  16. data/lib/growsurf_ruby/models/campaign/participant_record_transaction_params.rb +9 -1
  17. data/lib/growsurf_ruby/models/campaign/participant_refund_transaction_params.rb +17 -1
  18. data/lib/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rb +8 -8
  19. data/lib/growsurf_ruby/models/campaign/participant_retrieve_analytics_params.rb +4 -3
  20. data/lib/growsurf_ruby/models/campaign/participant_reward.rb +15 -3
  21. data/lib/growsurf_ruby/models/campaign/program_resource.rb +51 -0
  22. data/lib/growsurf_ruby/models/campaign/program_resource_create_params.rb +32 -0
  23. data/lib/growsurf_ruby/models/campaign/program_resource_delete_params.rb +14 -0
  24. data/lib/growsurf_ruby/models/campaign/program_resource_list_response.rb +12 -0
  25. data/lib/growsurf_ruby/models/campaign/program_resource_update_params.rb +35 -0
  26. data/lib/growsurf_ruby/models/campaign/program_resource_upload_result.rb +33 -0
  27. data/lib/growsurf_ruby/models/campaign/program_resource_upload_ticket.rb +26 -0
  28. data/lib/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rb +17 -0
  29. data/lib/growsurf_ruby/models/campaign/reward_create_params.rb +9 -8
  30. data/lib/growsurf_ruby/models/campaign/reward_update_params.rb +9 -8
  31. data/lib/growsurf_ruby/models/campaign.rb +3 -1
  32. data/lib/growsurf_ruby/models/campaign_activation_analytics_response.rb +186 -0
  33. data/lib/growsurf_ruby/models/campaign_create_params.rb +37 -1
  34. data/lib/growsurf_ruby/models/campaign_engagement_analytics.rb +174 -0
  35. data/lib/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rb +35 -0
  36. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_params.rb +37 -4
  37. data/lib/growsurf_ruby/models/campaign_retrieve_analytics_response.rb +3 -0
  38. data/lib/growsurf_ruby/models/commission_structure.rb +4 -1
  39. data/lib/growsurf_ruby/models/participant_commission_list.rb +5 -5
  40. data/lib/growsurf_ruby/models/participant_payout_list.rb +5 -5
  41. data/lib/growsurf_ruby/models.rb +7 -0
  42. data/lib/growsurf_ruby/resources/account.rb +24 -14
  43. data/lib/growsurf_ruby/resources/campaign/design.rb +11 -5
  44. data/lib/growsurf_ruby/resources/campaign/emails.rb +2 -1
  45. data/lib/growsurf_ruby/resources/campaign/integrations.rb +41 -0
  46. data/lib/growsurf_ruby/resources/campaign/participant.rb +25 -24
  47. data/lib/growsurf_ruby/resources/campaign/program_resources.rb +112 -0
  48. data/lib/growsurf_ruby/resources/campaign/rewards.rb +6 -4
  49. data/lib/growsurf_ruby/resources/campaign.rb +53 -7
  50. data/lib/growsurf_ruby/resources/team.rb +7 -5
  51. data/lib/growsurf_ruby/version.rb +1 -1
  52. data/lib/growsurf_ruby.rb +19 -0
  53. data/rbi/growsurf_ruby/internal/type/base_model.rbi +10 -0
  54. data/rbi/growsurf_ruby/internal/type/base_page.rbi +3 -0
  55. data/rbi/growsurf_ruby/models/analytics_availability.rbi +19 -0
  56. data/rbi/growsurf_ruby/models/analytics_unavailable_reason.rbi +23 -0
  57. data/rbi/growsurf_ruby/models/campaign/delete_program_resource_response.rbi +33 -0
  58. data/rbi/growsurf_ruby/models/campaign/integration.rbi +93 -0
  59. data/rbi/growsurf_ruby/models/campaign/integration_list_response.rbi +46 -0
  60. data/rbi/growsurf_ruby/models/campaign/participant_activation_analytics.rbi +133 -0
  61. data/rbi/growsurf_ruby/models/campaign/participant_analytics_response.rbi +35 -0
  62. data/rbi/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbi +17 -23
  63. data/rbi/growsurf_ruby/models/campaign/participant_record_transaction_params.rbi +18 -0
  64. data/rbi/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbi +18 -0
  65. data/rbi/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbi +7 -9
  66. data/rbi/growsurf_ruby/models/campaign/participant_reward.rbi +24 -6
  67. data/rbi/growsurf_ruby/models/campaign/program_resource.rbi +186 -0
  68. data/rbi/growsurf_ruby/models/campaign/program_resource_create_params.rbi +95 -0
  69. data/rbi/growsurf_ruby/models/campaign/program_resource_delete_params.rbi +37 -0
  70. data/rbi/growsurf_ruby/models/campaign/program_resource_list_response.rbi +29 -0
  71. data/rbi/growsurf_ruby/models/campaign/program_resource_update_params.rbi +105 -0
  72. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_result.rbi +94 -0
  73. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbi +57 -0
  74. data/rbi/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbi +53 -0
  75. data/rbi/growsurf_ruby/models/campaign/reward_create_params.rbi +33 -24
  76. data/rbi/growsurf_ruby/models/campaign/reward_update_params.rbi +33 -24
  77. data/rbi/growsurf_ruby/models/campaign.rbi +6 -3
  78. data/rbi/growsurf_ruby/models/campaign_activation_analytics_response.rbi +325 -0
  79. data/rbi/growsurf_ruby/models/campaign_create_params.rbi +91 -0
  80. data/rbi/growsurf_ruby/models/campaign_engagement_analytics.rbi +369 -0
  81. data/rbi/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbi +59 -0
  82. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_params.rbi +56 -3
  83. data/rbi/growsurf_ruby/models/campaign_retrieve_analytics_response.rbi +27 -7
  84. data/rbi/growsurf_ruby/models/commission_structure.rbi +3 -1
  85. data/rbi/growsurf_ruby/models/participant_commission_list.rbi +15 -15
  86. data/rbi/growsurf_ruby/models/participant_payout_list.rbi +15 -15
  87. data/rbi/growsurf_ruby/models.rbi +7 -0
  88. data/rbi/growsurf_ruby/resources/account.rbi +9 -6
  89. data/rbi/growsurf_ruby/resources/campaign/design.rbi +32 -4
  90. data/rbi/growsurf_ruby/resources/campaign/emails.rbi +2 -1
  91. data/rbi/growsurf_ruby/resources/campaign/integrations.rbi +35 -0
  92. data/rbi/growsurf_ruby/resources/campaign/participant.rbi +27 -18
  93. data/rbi/growsurf_ruby/resources/campaign/program_resources.rbi +116 -0
  94. data/rbi/growsurf_ruby/resources/campaign/rewards.rbi +21 -16
  95. data/rbi/growsurf_ruby/resources/campaign.rbi +53 -5
  96. data/rbi/growsurf_ruby/resources/team.rbi +7 -5
  97. data/sig/growsurf_ruby/internal/type/base_model.rbs +6 -0
  98. data/sig/growsurf_ruby/internal/type/base_page.rbs +2 -0
  99. data/sig/growsurf_ruby/models/analytics_availability.rbs +15 -0
  100. data/sig/growsurf_ruby/models/analytics_unavailable_reason.rbs +26 -0
  101. data/sig/growsurf_ruby/models/campaign/delete_program_resource_response.rbs +14 -0
  102. data/sig/growsurf_ruby/models/campaign/integration.rbs +47 -0
  103. data/sig/growsurf_ruby/models/campaign/integration_list_response.rbs +20 -0
  104. data/sig/growsurf_ruby/models/campaign/participant_activation_analytics.rbs +96 -0
  105. data/sig/growsurf_ruby/models/campaign/participant_analytics_response.rbs +22 -1
  106. data/sig/growsurf_ruby/models/campaign/participant_get_payout_destination_response.rbs +17 -22
  107. data/sig/growsurf_ruby/models/campaign/participant_record_transaction_params.rbs +15 -1
  108. data/sig/growsurf_ruby/models/campaign/participant_refund_transaction_params.rbs +15 -1
  109. data/sig/growsurf_ruby/models/campaign/participant_request_payout_destination_confirmation_response.rbs +8 -10
  110. data/sig/growsurf_ruby/models/campaign/participant_reward.rbs +22 -8
  111. data/sig/growsurf_ruby/models/campaign/program_resource.rbs +94 -0
  112. data/sig/growsurf_ruby/models/campaign/program_resource_create_params.rbs +45 -0
  113. data/sig/growsurf_ruby/models/campaign/program_resource_delete_params.rbs +22 -0
  114. data/sig/growsurf_ruby/models/campaign/program_resource_list_response.rbs +14 -0
  115. data/sig/growsurf_ruby/models/campaign/program_resource_update_params.rbs +48 -0
  116. data/sig/growsurf_ruby/models/campaign/program_resource_upload_result.rbs +58 -0
  117. data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket.rbs +29 -0
  118. data/sig/growsurf_ruby/models/campaign/program_resource_upload_ticket_params.rbs +29 -0
  119. data/sig/growsurf_ruby/models/campaign/reward_create_params.rbs +34 -34
  120. data/sig/growsurf_ruby/models/campaign/reward_update_params.rbs +34 -34
  121. data/sig/growsurf_ruby/models/campaign.rbs +7 -5
  122. data/sig/growsurf_ruby/models/campaign_activation_analytics_response.rbs +202 -0
  123. data/sig/growsurf_ruby/models/campaign_create_params.rbs +29 -0
  124. data/sig/growsurf_ruby/models/campaign_engagement_analytics.rbs +186 -0
  125. data/sig/growsurf_ruby/models/campaign_retrieve_activation_analytics_params.rbs +45 -0
  126. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_params.rbs +30 -1
  127. data/sig/growsurf_ruby/models/campaign_retrieve_analytics_response.rbs +21 -3
  128. data/sig/growsurf_ruby/models/participant_commission_list.rbs +20 -20
  129. data/sig/growsurf_ruby/models/participant_payout_list.rbs +20 -20
  130. data/sig/growsurf_ruby/models.rbs +6 -0
  131. data/sig/growsurf_ruby/resources/campaign/design.rbs +19 -0
  132. data/sig/growsurf_ruby/resources/campaign/integrations.rbs +14 -0
  133. data/sig/growsurf_ruby/resources/campaign/participant.rbs +4 -0
  134. data/sig/growsurf_ruby/resources/campaign/program_resources.rbs +58 -0
  135. data/sig/growsurf_ruby/resources/campaign/rewards.rbs +12 -12
  136. data/sig/growsurf_ruby/resources/campaign.rbs +17 -0
  137. metadata +59 -2
@@ -0,0 +1,93 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class Integration < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::Integration,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Stable integration key, the same value the GrowSurf dashboard uses for this
16
+ # integration.
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ # Whether GrowSurf switched the integration off after repeated delivery failures.
21
+ # Its credentials are still stored, but it delivers nothing until it is
22
+ # reconnected in the GrowSurf dashboard.
23
+ sig { returns(T::Boolean) }
24
+ attr_accessor :auto_disabled
25
+
26
+ # Dashboard link that opens this integration's connect panel in the GrowSurf Program
27
+ # Editor. Give it to the person running the program: connecting an account is a step
28
+ # they complete in the dashboard, and the API cannot do it for them.
29
+ sig { returns(String) }
30
+ attr_accessor :connect_url
31
+
32
+ # Whether the program has stored credentials for this integration.
33
+ sig { returns(T::Boolean) }
34
+ attr_accessor :connected
35
+
36
+ # Whether the integration is switched on and currently working.
37
+ sig { returns(T::Boolean) }
38
+ attr_accessor :enabled
39
+
40
+ # Display name, matching what the GrowSurf dashboard calls this integration.
41
+ sig { returns(String) }
42
+ attr_accessor :name
43
+
44
+ # One integration a program can connect, with its current state.
45
+ sig do
46
+ params(
47
+ id: String,
48
+ auto_disabled: T::Boolean,
49
+ connect_url: String,
50
+ connected: T::Boolean,
51
+ enabled: T::Boolean,
52
+ name: String
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+ # Stable integration key, the same value the GrowSurf dashboard uses for this
57
+ # integration.
58
+ id:,
59
+ # Whether GrowSurf switched the integration off after repeated delivery failures.
60
+ # Its credentials are still stored, but it delivers nothing until it is
61
+ # reconnected in the GrowSurf dashboard.
62
+ auto_disabled:,
63
+ # Dashboard link that opens this integration's connect panel in the GrowSurf Program
64
+ # Editor. Give it to the person running the program: connecting an account is a step
65
+ # they complete in the dashboard, and the API cannot do it for them.
66
+ connect_url:,
67
+ # Whether the program has stored credentials for this integration.
68
+ connected:,
69
+ # Whether the integration is switched on and currently working.
70
+ enabled:,
71
+ # Display name, matching what the GrowSurf dashboard calls this integration.
72
+ name:
73
+ )
74
+ end
75
+
76
+ sig do
77
+ override.returns(
78
+ {
79
+ id: String,
80
+ auto_disabled: T::Boolean,
81
+ connect_url: String,
82
+ connected: T::Boolean,
83
+ enabled: T::Boolean,
84
+ name: String
85
+ }
86
+ )
87
+ end
88
+ def to_hash
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,46 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class IntegrationListResponse < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::IntegrationListResponse,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Every integration this program can connect, in the order the GrowSurf dashboard
16
+ # lists them.
17
+ sig { returns(T::Array[GrowsurfRuby::Models::Campaign::Integration]) }
18
+ attr_accessor :integrations
19
+
20
+ sig do
21
+ params(
22
+ integrations:
23
+ T::Array[GrowsurfRuby::Models::Campaign::Integration::OrHash]
24
+ ).returns(T.attached_class)
25
+ end
26
+ def self.new(
27
+ # Every integration this program can connect, in the order the GrowSurf dashboard
28
+ # lists them.
29
+ integrations:
30
+ )
31
+ end
32
+
33
+ sig do
34
+ override.returns(
35
+ {
36
+ integrations:
37
+ T::Array[GrowsurfRuby::Models::Campaign::Integration]
38
+ }
39
+ )
40
+ end
41
+ def to_hash
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,133 @@
1
+ # typed: strong
2
+
3
+ module GrowsurfRuby
4
+ module Models
5
+ module Campaign
6
+ class ParticipantActivationAnalytics < GrowsurfRuby::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ GrowsurfRuby::Models::Campaign::ParticipantActivationAnalytics,
11
+ GrowsurfRuby::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(T.nilable(Integer)) }
16
+ attr_accessor :coverage_start_at, :enrolled_as_advocate_at
17
+
18
+ sig { returns(Integer) }
19
+ attr_accessor :metric_contract_version
20
+
21
+ sig { returns(ProgramType::OrSymbol) }
22
+ attr_accessor :program_type
23
+
24
+ sig { returns(GrowsurfRuby::Models::AnalyticsAvailability::OrSymbol) }
25
+ attr_accessor :state
26
+
27
+ sig do
28
+ returns(
29
+ T.nilable(
30
+ GrowsurfRuby::Models::AnalyticsUnavailableReason::OrSymbol
31
+ )
32
+ )
33
+ end
34
+ attr_accessor :reason
35
+
36
+ sig { returns(Cohort) }
37
+ attr_accessor :cohort
38
+
39
+ sig { returns(Milestones) }
40
+ attr_accessor :milestones
41
+
42
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
43
+ def self.new(**kwargs)
44
+ end
45
+
46
+ module ProgramType
47
+ extend GrowsurfRuby::Internal::Type::Enum
48
+
49
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
50
+ REFERRAL = T.let(:REFERRAL, Symbol)
51
+ AFFILIATE = T.let(:AFFILIATE, Symbol)
52
+ sig { override.returns(T::Array[Symbol]) }
53
+ def self.values
54
+ end
55
+ end
56
+
57
+ module AnchorField
58
+ extend GrowsurfRuby::Internal::Type::Enum
59
+
60
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
61
+ ENROLLED_AS_ADVOCATE_AT = T.let(:enrolledAsAdvocateAt, Symbol)
62
+ APPROVED_AS_AFFILIATE_AT = T.let(:approvedAsAffiliateAt, Symbol)
63
+ sig { override.returns(T::Array[Symbol]) }
64
+ def self.values
65
+ end
66
+ end
67
+
68
+ module ShareChannel
69
+ extend GrowsurfRuby::Internal::Type::Enum
70
+
71
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
72
+ EMAIL = T.let(:email, Symbol)
73
+ FACEBOOK = T.let(:facebook, Symbol)
74
+ TWITTER = T.let(:twitter, Symbol)
75
+ LINKEDIN = T.let(:linkedin, Symbol)
76
+ PINTEREST = T.let(:pinterest, Symbol)
77
+ THREADS = T.let(:threads, Symbol)
78
+ BLUESKY = T.let(:bluesky, Symbol)
79
+ SMS = T.let(:sms, Symbol)
80
+ MESSENGER = T.let(:messenger, Symbol)
81
+ WHATSAPP = T.let(:whatsapp, Symbol)
82
+ WECHAT = T.let(:wechat, Symbol)
83
+ TELEGRAM = T.let(:telegram, Symbol)
84
+ REDDIT = T.let(:reddit, Symbol)
85
+ TUMBLR = T.let(:tumblr, Symbol)
86
+ QRCODE = T.let(:qrcode, Symbol)
87
+ COPY_REF_LINK = T.let(:copyRefLink, Symbol)
88
+ IOS_NATIVE_SHARE = T.let(:iosNativeShare, Symbol)
89
+ ANDROID_NATIVE_SHARE = T.let(:androidNativeShare, Symbol)
90
+ sig { override.returns(T::Array[Symbol]) }
91
+ def self.values
92
+ end
93
+ end
94
+
95
+ class Cohort < GrowsurfRuby::Internal::Type::BaseModel
96
+ OrHash =
97
+ T.type_alias { T.any(Cohort, GrowsurfRuby::Internal::AnyHash) }
98
+ sig { returns(AnchorField::OrSymbol) }
99
+ attr_accessor :anchor_field
100
+
101
+ sig { returns(T.nilable(Integer)) }
102
+ attr_accessor :anchor_at
103
+
104
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
105
+ def self.new(**kwargs)
106
+ end
107
+ end
108
+
109
+ class Milestones < GrowsurfRuby::Internal::Type::BaseModel
110
+ OrHash =
111
+ T.type_alias { T.any(Milestones, GrowsurfRuby::Internal::AnyHash) }
112
+ sig { returns(T.nilable(Integer)) }
113
+ attr_accessor :first_portal_viewed_at,
114
+ :first_referral_link_copied_at,
115
+ :first_share_at,
116
+ :first_unique_click_at,
117
+ :first_lead_at,
118
+ :first_referral_at,
119
+ :first_reward_at,
120
+ :first_commission_at,
121
+ :payout_setup_completed_at
122
+
123
+ sig { returns(T.nilable(ShareChannel::OrSymbol)) }
124
+ attr_accessor :first_share_channel
125
+
126
+ sig { params(kwargs: T.untyped).returns(T.attached_class) }
127
+ def self.new(**kwargs)
128
+ end
129
+ end
130
+ end
131
+ end
132
+ end
133
+ end
@@ -28,6 +28,23 @@ module GrowsurfRuby
28
28
  sig { returns(T::Hash[Symbol, Integer]) }
29
29
  attr_accessor :share_count
30
30
 
31
+ sig do
32
+ returns(
33
+ T.nilable(
34
+ GrowsurfRuby::Models::Campaign::ParticipantActivationAnalytics
35
+ )
36
+ )
37
+ end
38
+ attr_reader :activation
39
+
40
+ sig do
41
+ params(
42
+ activation:
43
+ GrowsurfRuby::Models::Campaign::ParticipantActivationAnalytics::OrHash
44
+ ).void
45
+ end
46
+ attr_writer :activation
47
+
31
48
  # Present only when `include` contains `series` or `email`. Window end (Unix ms).
32
49
  sig { returns(T.nilable(Integer)) }
33
50
  attr_reader :end_date
@@ -73,6 +90,8 @@ module GrowsurfRuby
73
90
  ranks:
74
91
  GrowsurfRuby::Campaign::ParticipantAnalyticsResponse::Ranks::OrHash,
75
92
  share_count: T::Hash[Symbol, Integer],
93
+ activation:
94
+ GrowsurfRuby::Models::Campaign::ParticipantActivationAnalytics::OrHash,
76
95
  end_date: Integer,
77
96
  series:
78
97
  T::Array[
@@ -86,6 +105,8 @@ module GrowsurfRuby
86
105
  ranks:,
87
106
  # Per-channel share counts (e.g. `email`, `facebook`, `twitter`, ...).
88
107
  share_count:,
108
+ # Present only when `include` contains `activation`.
109
+ activation: nil,
89
110
  # Present only when `include` contains `series` or `email`. Window end (Unix ms).
90
111
  end_date: nil,
91
112
  # Present only when `include=series`. This participant's own referral-link activity
@@ -105,6 +126,8 @@ module GrowsurfRuby
105
126
  ranks:
106
127
  GrowsurfRuby::Campaign::ParticipantAnalyticsResponse::Ranks,
107
128
  share_count: T::Hash[Symbol, Integer],
129
+ activation:
130
+ GrowsurfRuby::Models::Campaign::ParticipantActivationAnalytics,
108
131
  end_date: Integer,
109
132
  series:
110
133
  T::Array[
@@ -421,6 +444,9 @@ module GrowsurfRuby
421
444
  sig { params(pinterest_shares: Integer).void }
422
445
  attr_writer :pinterest_shares
423
446
 
447
+ sig { returns(T.nilable(Integer)) }
448
+ attr_accessor :portal_views
449
+
424
450
  sig { returns(T.nilable(Integer)) }
425
451
  attr_reader :qrcode_shares
426
452
 
@@ -457,6 +483,9 @@ module GrowsurfRuby
457
483
  sig { params(sms_shares: Integer).void }
458
484
  attr_writer :sms_shares
459
485
 
486
+ sig { returns(T.nilable(Integer)) }
487
+ attr_accessor :share_actions
488
+
460
489
  sig { returns(T.nilable(Integer)) }
461
490
  attr_reader :telegram_shares
462
491
 
@@ -542,12 +571,14 @@ module GrowsurfRuby
542
571
  participants: Integer,
543
572
  period_start: Integer,
544
573
  pinterest_shares: Integer,
574
+ portal_views: T.nilable(Integer),
545
575
  qrcode_shares: Integer,
546
576
  reddit_shares: Integer,
547
577
  referral_credit_expireds: Integer,
548
578
  referral_credit_pendings: Integer,
549
579
  referrals: Integer,
550
580
  sms_shares: Integer,
581
+ share_actions: T.nilable(Integer),
551
582
  telegram_shares: Integer,
552
583
  threads_shares: Integer,
553
584
  total_commission_count: Integer,
@@ -576,12 +607,14 @@ module GrowsurfRuby
576
607
  # Start of the period, as a Unix timestamp in milliseconds (UTC).
577
608
  period_start: nil,
578
609
  pinterest_shares: nil,
610
+ portal_views: nil,
579
611
  qrcode_shares: nil,
580
612
  reddit_shares: nil,
581
613
  referral_credit_expireds: nil,
582
614
  referral_credit_pendings: nil,
583
615
  referrals: nil,
584
616
  sms_shares: nil,
617
+ share_actions: nil,
585
618
  telegram_shares: nil,
586
619
  threads_shares: nil,
587
620
  # Affiliate programs only. Number of commission records.
@@ -616,12 +649,14 @@ module GrowsurfRuby
616
649
  participants: Integer,
617
650
  period_start: Integer,
618
651
  pinterest_shares: Integer,
652
+ portal_views: T.nilable(Integer),
619
653
  qrcode_shares: Integer,
620
654
  reddit_shares: Integer,
621
655
  referral_credit_expireds: Integer,
622
656
  referral_credit_pendings: Integer,
623
657
  referrals: Integer,
624
658
  sms_shares: Integer,
659
+ share_actions: T.nilable(Integer),
625
660
  telegram_shares: Integer,
626
661
  threads_shares: Integer,
627
662
  total_commission_count: Integer,
@@ -21,11 +21,9 @@ module GrowsurfRuby
21
21
  # for it.
22
22
  sig do
23
23
  returns(
24
- T.nilable(
25
- T::Array[
26
- GrowsurfRuby::Campaign::ParticipantGetPayoutDestinationResponse::Destination
27
- ]
28
- )
24
+ T::Array[
25
+ GrowsurfRuby::Campaign::ParticipantGetPayoutDestinationResponse::Destination
26
+ ]
29
27
  )
30
28
  end
31
29
  attr_reader :destinations
@@ -42,11 +40,7 @@ module GrowsurfRuby
42
40
 
43
41
  # The payout providers enabled for this program.
44
42
  sig do
45
- returns(
46
- T.nilable(
47
- T::Array[String]
48
- )
49
- )
43
+ returns(T::Array[String])
50
44
  end
51
45
  attr_reader :enabled_providers
52
46
 
@@ -71,12 +65,12 @@ module GrowsurfRuby
71
65
  def self.new(
72
66
  # The provider that currently gets paid, or null until the participant confirms
73
67
  # one.
74
- active_provider: nil,
68
+ active_provider:,
75
69
  # One entry per enabled payout provider describing the participant's destination
76
70
  # for it.
77
- destinations: nil,
71
+ destinations:,
78
72
  # The payout providers enabled for this program.
79
- enabled_providers: nil
73
+ enabled_providers:
80
74
  )
81
75
  end
82
76
 
@@ -127,14 +121,14 @@ module GrowsurfRuby
127
121
  attr_accessor :needs_repair_reason
128
122
 
129
123
  # The payout provider this entry describes.
130
- sig { returns(T.nilable(String)) }
124
+ sig { returns(String) }
131
125
  attr_reader :provider
132
126
 
133
127
  sig { params(provider: String).void }
134
128
  attr_writer :provider
135
129
 
136
130
  # The customer-facing provider name (e.g. "PayPal", "Wise").
137
- sig { returns(T.nilable(String)) }
131
+ sig { returns(String) }
138
132
  attr_reader :provider_display_name
139
133
 
140
134
  sig { params(provider_display_name: String).void }
@@ -143,7 +137,7 @@ module GrowsurfRuby
143
137
  # The destination's current status: `NONE` (not set up), `PENDING_CONFIRMATION`,
144
138
  # `CONFIRMED`, `ACTIVE`, `NEEDS_REPAIR`, or `EXPIRED`. Historical superseded
145
139
  # or revoked destinations are projected as `NONE`.
146
- sig { returns(T.nilable(String)) }
140
+ sig { returns(String) }
147
141
  attr_reader :status
148
142
 
149
143
  sig { params(status: String).void }
@@ -165,21 +159,21 @@ module GrowsurfRuby
165
159
  end
166
160
  def self.new(
167
161
  # The confirmed payout email for this provider.
168
- claim_email: nil,
162
+ claim_email:,
169
163
  # When the destination was confirmed, as a Unix timestamp in milliseconds.
170
- confirmed_at: nil,
164
+ confirmed_at:,
171
165
  # The legal recipient type the participant confirmed, if any.
172
- legal_entity_type: nil,
166
+ legal_entity_type:,
173
167
  # When status is `NEEDS_REPAIR`, why (e.g. a bounced delivery).
174
- needs_repair_reason: nil,
168
+ needs_repair_reason:,
175
169
  # The payout provider this entry describes.
176
- provider: nil,
170
+ provider:,
177
171
  # The customer-facing provider name (e.g. "PayPal", "Wise").
178
- provider_display_name: nil,
172
+ provider_display_name:,
179
173
  # The destination's current status: `NONE` (not set up), `PENDING_CONFIRMATION`,
180
174
  # `CONFIRMED`, `ACTIVE`, `NEEDS_REPAIR`, or `EXPIRED`. Historical superseded
181
175
  # or revoked destinations are projected as `NONE`.
182
- status: nil
176
+ status:
183
177
  )
184
178
  end
185
179
 
@@ -155,6 +155,18 @@ module GrowsurfRuby
155
155
  sig { params(transaction_id: String).void }
156
156
  attr_writer :transaction_id
157
157
 
158
+ sig { returns(T.nilable(String)) }
159
+ attr_reader :payment_provider
160
+
161
+ sig { params(payment_provider: String).void }
162
+ attr_writer :payment_provider
163
+
164
+ sig { returns(T.nilable(T::Boolean)) }
165
+ attr_reader :test_mode
166
+
167
+ sig { params(test_mode: T::Boolean).void }
168
+ attr_writer :test_mode
169
+
158
170
  sig do
159
171
  params(
160
172
  id: String,
@@ -182,6 +194,8 @@ module GrowsurfRuby
182
194
  total_tax_amounts: T::Array[T::Hash[Symbol, T.anything]],
183
195
  total_taxes: T::Array[T::Hash[Symbol, T.anything]],
184
196
  transaction_id: String,
197
+ payment_provider: String,
198
+ test_mode: T::Boolean,
185
199
  request_options: GrowsurfRuby::RequestOptions::OrHash
186
200
  ).returns(T.attached_class)
187
201
  end
@@ -211,6 +225,8 @@ module GrowsurfRuby
211
225
  total_tax_amounts: nil,
212
226
  total_taxes: nil,
213
227
  transaction_id: nil,
228
+ payment_provider: nil,
229
+ test_mode: nil,
214
230
  request_options: {}
215
231
  )
216
232
  end
@@ -243,6 +259,8 @@ module GrowsurfRuby
243
259
  total_tax_amounts: T::Array[T::Hash[Symbol, T.anything]],
244
260
  total_taxes: T::Array[T::Hash[Symbol, T.anything]],
245
261
  transaction_id: String,
262
+ payment_provider: String,
263
+ test_mode: T::Boolean,
246
264
  request_options: GrowsurfRuby::RequestOptions
247
265
  }
248
266
  )
@@ -122,6 +122,18 @@ module GrowsurfRuby
122
122
  sig { params(transaction_id: String).void }
123
123
  attr_writer :transaction_id
124
124
 
125
+ sig { returns(T.nilable(String)) }
126
+ attr_reader :payment_provider
127
+
128
+ sig { params(payment_provider: String).void }
129
+ attr_writer :payment_provider
130
+
131
+ sig { returns(T.nilable(T::Boolean)) }
132
+ attr_reader :test_mode
133
+
134
+ sig { params(test_mode: T::Boolean).void }
135
+ attr_writer :test_mode
136
+
125
137
  sig do
126
138
  params(
127
139
  id: String,
@@ -142,6 +154,8 @@ module GrowsurfRuby
142
154
  refund_id: String,
143
155
  refund_status: String,
144
156
  transaction_id: String,
157
+ payment_provider: String,
158
+ test_mode: T::Boolean,
145
159
  request_options: GrowsurfRuby::RequestOptions::OrHash
146
160
  ).returns(T.attached_class)
147
161
  end
@@ -163,6 +177,8 @@ module GrowsurfRuby
163
177
  refund_id: nil,
164
178
  refund_status: nil,
165
179
  transaction_id: nil,
180
+ payment_provider: nil,
181
+ test_mode: nil,
166
182
  request_options: {}
167
183
  )
168
184
  end
@@ -188,6 +204,8 @@ module GrowsurfRuby
188
204
  refund_id: String,
189
205
  refund_status: String,
190
206
  transaction_id: String,
207
+ payment_provider: String,
208
+ test_mode: T::Boolean,
191
209
  request_options: GrowsurfRuby::RequestOptions
192
210
  }
193
211
  )
@@ -17,14 +17,14 @@ module GrowsurfRuby
17
17
  attr_accessor :expires_at
18
18
 
19
19
  # The provider the participant was asked to confirm.
20
- sig { returns(T.nilable(String)) }
20
+ sig { returns(String) }
21
21
  attr_reader :provider
22
22
 
23
23
  sig { params(provider: String).void }
24
24
  attr_writer :provider
25
25
 
26
26
  # The customer-facing provider name (e.g. "PayPal", "Wise").
27
- sig { returns(T.nilable(String)) }
27
+ sig { returns(String) }
28
28
  attr_reader :provider_display_name
29
29
 
30
30
  sig { params(provider_display_name: String).void }
@@ -33,9 +33,7 @@ module GrowsurfRuby
33
33
  # Confirms the message was requested.
34
34
  sig do
35
35
  returns(
36
- T.nilable(
37
- GrowsurfRuby::Campaign::ParticipantRequestPayoutDestinationConfirmationResponse::Status::OrSymbol
38
- )
36
+ GrowsurfRuby::Campaign::ParticipantRequestPayoutDestinationConfirmationResponse::Status::OrSymbol
39
37
  )
40
38
  end
41
39
  attr_reader :status
@@ -59,13 +57,13 @@ module GrowsurfRuby
59
57
  end
60
58
  def self.new(
61
59
  # When the confirmation link expires, as a Unix timestamp in milliseconds.
62
- expires_at: nil,
60
+ expires_at:,
63
61
  # The provider the participant was asked to confirm.
64
- provider: nil,
62
+ provider:,
65
63
  # The customer-facing provider name (e.g. "PayPal", "Wise").
66
- provider_display_name: nil,
64
+ provider_display_name:,
67
65
  # Confirms the message was requested.
68
- status: nil
66
+ status:
69
67
  )
70
68
  end
71
69
 
@@ -34,9 +34,15 @@ module GrowsurfRuby
34
34
  sig { returns(T.nilable(Integer)) }
35
35
  attr_reader :approved_at
36
36
 
37
- sig { params(approved_at: Integer).void }
37
+ sig { params(approved_at: T.nilable(Integer)).void }
38
38
  attr_writer :approved_at
39
39
 
40
+ sig { returns(T.nilable(Float)) }
41
+ attr_reader :amount
42
+
43
+ sig { params(amount: T.nilable(Float)).void }
44
+ attr_writer :amount
45
+
40
46
  sig { returns(T.nilable(GrowsurfRuby::CommissionStructure)) }
41
47
  attr_reader :commission_structure
42
48
 
@@ -48,10 +54,16 @@ module GrowsurfRuby
48
54
  end
49
55
  attr_writer :commission_structure
50
56
 
57
+ sig { returns(T.nilable(String)) }
58
+ attr_reader :currency_iso
59
+
60
+ sig { params(currency_iso: T.nilable(String)).void }
61
+ attr_writer :currency_iso
62
+
51
63
  sig { returns(T.nilable(Integer)) }
52
64
  attr_reader :fulfilled_at
53
65
 
54
- sig { params(fulfilled_at: Integer).void }
66
+ sig { params(fulfilled_at: T.nilable(Integer)).void }
55
67
  attr_writer :fulfilled_at
56
68
 
57
69
  sig { returns(T.nilable(T::Boolean)) }
@@ -96,10 +108,12 @@ module GrowsurfRuby
96
108
  reward_id: String,
97
109
  status: GrowsurfRuby::Campaign::ParticipantReward::Status::OrSymbol,
98
110
  approved: T::Boolean,
99
- approved_at: Integer,
111
+ approved_at: T.nilable(Integer),
112
+ amount: T.nilable(Float),
100
113
  commission_structure:
101
114
  T.nilable(GrowsurfRuby::CommissionStructure::OrHash),
102
- fulfilled_at: Integer,
115
+ currency_iso: T.nilable(String),
116
+ fulfilled_at: T.nilable(Integer),
103
117
  is_available: T::Boolean,
104
118
  is_fulfilled: T::Boolean,
105
119
  is_referrer: T::Boolean,
@@ -114,7 +128,9 @@ module GrowsurfRuby
114
128
  status:,
115
129
  approved: nil,
116
130
  approved_at: nil,
131
+ amount: nil,
117
132
  commission_structure: nil,
133
+ currency_iso: nil,
118
134
  fulfilled_at: nil,
119
135
  is_available: nil,
120
136
  is_fulfilled: nil,
@@ -133,10 +149,12 @@ module GrowsurfRuby
133
149
  status:
134
150
  GrowsurfRuby::Campaign::ParticipantReward::Status::TaggedSymbol,
135
151
  approved: T::Boolean,
136
- approved_at: Integer,
152
+ approved_at: T.nilable(Integer),
153
+ amount: T.nilable(Float),
137
154
  commission_structure:
138
155
  T.nilable(GrowsurfRuby::CommissionStructure),
139
- fulfilled_at: Integer,
156
+ currency_iso: T.nilable(String),
157
+ fulfilled_at: T.nilable(Integer),
140
158
  is_available: T::Boolean,
141
159
  is_fulfilled: T::Boolean,
142
160
  is_referrer: T::Boolean,