dub 0.10.5 → 0.12.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.
- checksums.yaml +4 -4
- data/lib/crystalline/module.rb +4 -0
- data/lib/crystalline/utils.rb +13 -0
- data/lib/open_api_sdk/analytics.rb +1 -1
- data/lib/open_api_sdk/commissions.rb +2 -2
- data/lib/open_api_sdk/customers.rb +4 -241
- data/lib/open_api_sdk/domains.rb +6 -6
- data/lib/open_api_sdk/embed_tokens.rb +1 -1
- data/lib/open_api_sdk/events.rb +1 -1
- data/lib/open_api_sdk/folders.rb +4 -4
- data/lib/open_api_sdk/links.rb +10 -10
- data/lib/open_api_sdk/models/operations/banpartner_requestbody.rb +41 -0
- data/lib/open_api_sdk/models/operations/banpartner_requestbody.rbi +17 -0
- data/lib/open_api_sdk/models/operations/banpartner_responsebody.rb +33 -0
- data/lib/open_api_sdk/models/operations/banpartner_responsebody.rbi +13 -0
- data/lib/open_api_sdk/models/operations/createfolder_requestbody.rb +6 -2
- data/lib/open_api_sdk/models/operations/createfolder_requestbody.rbi +2 -0
- data/lib/open_api_sdk/models/operations/createlink_requestbody.rb +1 -1
- data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +52 -24
- data/lib/open_api_sdk/models/operations/createpartner_responsebody.rbi +24 -10
- data/lib/open_api_sdk/models/operations/listcommissions_partner.rb +6 -2
- data/lib/open_api_sdk/models/operations/listcommissions_partner.rbi +2 -0
- data/lib/open_api_sdk/models/operations/listcommissions_request.rb +6 -2
- data/lib/open_api_sdk/models/operations/listcommissions_request.rbi +2 -0
- data/lib/open_api_sdk/models/operations/listevents_request.rb +6 -2
- data/lib/open_api_sdk/models/operations/listevents_request.rbi +2 -0
- data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortby.rb +11 -6
- data/lib/open_api_sdk/models/operations/listpartners_request.rb +3 -7
- data/lib/open_api_sdk/models/operations/listpartners_request.rbi +0 -2
- data/lib/open_api_sdk/models/operations/listpartners_responsebody.rb +52 -24
- data/lib/open_api_sdk/models/operations/listpartners_responsebody.rbi +24 -10
- data/lib/open_api_sdk/models/operations/queryparam_groupby.rb +6 -1
- data/lib/open_api_sdk/models/operations/reason.rb +26 -0
- data/lib/open_api_sdk/models/operations/reason.rbi +11 -0
- data/lib/open_api_sdk/models/operations/requestbody.rb +1 -1
- data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +6 -2
- data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rbi +2 -0
- data/lib/open_api_sdk/models/operations/retrievelinks_request.rb +2 -2
- data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb +10 -10
- data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rbi +4 -4
- data/lib/open_api_sdk/models/operations/tracklead_requestbody.rb +1 -1
- data/lib/open_api_sdk/models/operations/updatecommission_partner.rb +6 -2
- data/lib/open_api_sdk/models/operations/updatecommission_partner.rbi +2 -0
- data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb +6 -2
- data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rbi +2 -0
- data/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +1 -1
- data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +1 -1
- data/lib/open_api_sdk/models/operations.rb +3 -6
- data/lib/open_api_sdk/models/shared/analyticstopurls.rb +1 -1
- data/lib/open_api_sdk/models/shared/applicationformdata.rb +37 -0
- data/lib/open_api_sdk/models/shared/applicationformdata.rbi +15 -0
- data/lib/open_api_sdk/models/shared/commissioncreatedevent_partner.rb +6 -2
- data/lib/open_api_sdk/models/shared/commissioncreatedevent_partner.rbi +2 -0
- data/lib/open_api_sdk/models/shared/folderschema.rb +6 -2
- data/lib/open_api_sdk/models/shared/folderschema.rbi +2 -0
- data/lib/open_api_sdk/models/shared/leadcreatedevent_link.rb +15 -11
- data/lib/open_api_sdk/models/shared/leadcreatedevent_link.rbi +6 -4
- data/lib/open_api_sdk/models/shared/leadevent_link.rb +15 -11
- data/lib/open_api_sdk/models/shared/leadevent_link.rbi +6 -4
- data/lib/open_api_sdk/models/shared/link.rb +15 -11
- data/lib/open_api_sdk/models/shared/link.rbi +6 -4
- data/lib/open_api_sdk/models/shared/linkclickedevent_link.rb +15 -11
- data/lib/open_api_sdk/models/shared/linkclickedevent_link.rbi +6 -4
- data/lib/open_api_sdk/models/shared/linkschema.rb +7 -3
- data/lib/open_api_sdk/models/shared/linkschema.rbi +2 -0
- data/lib/open_api_sdk/models/shared/{tagschema.rb → linktagschema.rb} +1 -1
- data/lib/open_api_sdk/models/shared/{tagschema.rbi → linktagschema.rbi} +2 -2
- data/lib/open_api_sdk/models/shared/linkwebhookevent_link.rb +15 -11
- data/lib/open_api_sdk/models/shared/linkwebhookevent_link.rbi +6 -4
- data/lib/open_api_sdk/models/shared/partner.rb +6 -2
- data/lib/open_api_sdk/models/shared/partner.rbi +2 -0
- data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent.rb +45 -0
- data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent.rbi +19 -0
- data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_data.rb +45 -0
- data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_data.rbi +19 -0
- data/lib/open_api_sdk/models/{operations/createcustomer_type.rb → shared/partnerapplicationsubmittedevent_event.rb} +3 -4
- data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_event.rbi +11 -0
- data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_partner.rb +89 -0
- data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_partner.rbi +41 -0
- data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_status.rb +28 -0
- data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_status.rbi +11 -0
- data/lib/open_api_sdk/models/shared/partnerenrolledevent_data.rb +52 -24
- data/lib/open_api_sdk/models/shared/partnerenrolledevent_data.rbi +24 -10
- data/lib/open_api_sdk/models/shared/salecreatedevent_link.rb +15 -11
- data/lib/open_api_sdk/models/shared/salecreatedevent_link.rbi +6 -4
- data/lib/open_api_sdk/models/shared/salecreatedevent_partner.rb +6 -2
- data/lib/open_api_sdk/models/shared/salecreatedevent_partner.rbi +2 -0
- data/lib/open_api_sdk/models/shared/saleevent_link.rb +15 -11
- data/lib/open_api_sdk/models/shared/saleevent_link.rbi +6 -4
- data/lib/open_api_sdk/models/shared/workspaceschema.rb +10 -2
- data/lib/open_api_sdk/models/shared/workspaceschema.rbi +4 -0
- data/lib/open_api_sdk/models/shared.rb +7 -1
- data/lib/open_api_sdk/partners.rb +241 -6
- data/lib/open_api_sdk/qr_codes.rb +1 -1
- data/lib/open_api_sdk/sdkconfiguration.rb +3 -3
- data/lib/open_api_sdk/tags.rb +10 -10
- data/lib/open_api_sdk/track.rb +2 -2
- data/lib/open_api_sdk/workspaces.rb +2 -2
- metadata +22 -16
- data/lib/open_api_sdk/models/operations/createcustomer_discount.rb +0 -61
- data/lib/open_api_sdk/models/operations/createcustomer_discount.rbi +0 -27
- data/lib/open_api_sdk/models/operations/createcustomer_link.rb +0 -53
- data/lib/open_api_sdk/models/operations/createcustomer_link.rbi +0 -23
- data/lib/open_api_sdk/models/operations/createcustomer_partner.rb +0 -45
- data/lib/open_api_sdk/models/operations/createcustomer_partner.rbi +0 -19
- data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rb +0 -49
- data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rbi +0 -21
- data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rb +0 -81
- data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rbi +0 -37
- data/lib/open_api_sdk/models/operations/createcustomer_type.rbi +0 -11
|
@@ -15,12 +15,15 @@ module OpenApiSDK
|
|
|
15
15
|
|
|
16
16
|
# The name of the folder.
|
|
17
17
|
field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name'), required: true } }
|
|
18
|
+
# The description of the folder.
|
|
19
|
+
field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
|
|
18
20
|
# The access level of the folder within the workspace.
|
|
19
21
|
field :access_level, Crystalline::Nilable.new(Models::Operations::AccessLevel), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('accessLevel'), 'decoder': Utils.enum_from_string(Models::Operations::AccessLevel, true) } }
|
|
20
22
|
|
|
21
|
-
sig { params(name: ::String, access_level: T.nilable(Models::Operations::AccessLevel)).void }
|
|
22
|
-
def initialize(name:, access_level: nil)
|
|
23
|
+
sig { params(name: ::String, description: T.nilable(::String), access_level: T.nilable(Models::Operations::AccessLevel)).void }
|
|
24
|
+
def initialize(name:, description: nil, access_level: nil)
|
|
23
25
|
@name = name
|
|
26
|
+
@description = description
|
|
24
27
|
@access_level = access_level
|
|
25
28
|
end
|
|
26
29
|
|
|
@@ -28,6 +31,7 @@ module OpenApiSDK
|
|
|
28
31
|
def ==(other)
|
|
29
32
|
return false unless other.is_a? self.class
|
|
30
33
|
return false unless @name == other.name
|
|
34
|
+
return false unless @description == other.description
|
|
31
35
|
return false unless @access_level == other.access_level
|
|
32
36
|
true
|
|
33
37
|
end
|
|
@@ -15,7 +15,7 @@ module OpenApiSDK
|
|
|
15
15
|
|
|
16
16
|
# The destination URL of the short link.
|
|
17
17
|
field :url, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('url'), required: true } }
|
|
18
|
-
# The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains).
|
|
18
|
+
# The domain of the short link (without protocol). If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains).
|
|
19
19
|
field :domain, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('domain') } }
|
|
20
20
|
# The short link slug. If not provided, a random 7-character slug will be generated.
|
|
21
21
|
field :key, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('key') } }
|
|
@@ -39,6 +39,8 @@ module OpenApiSDK
|
|
|
39
39
|
field :stripe_connect_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('stripeConnectId'), required: true } }
|
|
40
40
|
# The date when the partner enabled payouts.
|
|
41
41
|
field :payouts_enabled_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabledAt'), required: true } }
|
|
42
|
+
# The date when the partner received the trusted badge in the partner network.
|
|
43
|
+
field :trusted_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('trustedAt'), required: true } }
|
|
42
44
|
# The partner's unique ID within your database. Can be useful for associating the partner with a user in your database and retrieving/update their data in the future.
|
|
43
45
|
field :tenant_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tenantId'), required: true } }
|
|
44
46
|
# The partner's referral links in this program.
|
|
@@ -47,7 +49,7 @@ module OpenApiSDK
|
|
|
47
49
|
field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
|
|
48
50
|
# The partner's group ID on Dub.
|
|
49
51
|
field :group_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('groupId') } }
|
|
50
|
-
# The total commissions paid to the partner for their referrals
|
|
52
|
+
# The total commissions paid to the partner for their referrals
|
|
51
53
|
field :total_commissions, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalCommissions') } }
|
|
52
54
|
|
|
53
55
|
field :click_reward_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clickRewardId') } }
|
|
@@ -63,18 +65,30 @@ module OpenApiSDK
|
|
|
63
65
|
field :banned_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bannedAt') } }
|
|
64
66
|
# If the partner was banned from the program, this is the reason for the ban.
|
|
65
67
|
field :banned_reason, Crystalline::Nilable.new(Models::Operations::BannedReason), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bannedReason'), 'decoder': Utils.enum_from_string(Models::Operations::BannedReason, true) } }
|
|
66
|
-
# The total number of clicks on the partner's links
|
|
67
|
-
field :
|
|
68
|
-
# The total number of leads generated by the partner's links
|
|
69
|
-
field :
|
|
70
|
-
# The total number of leads that converted to paying customers
|
|
71
|
-
field :
|
|
72
|
-
# The total number of sales generated by the partner's links (includes recurring sales)
|
|
73
|
-
field :
|
|
74
|
-
#
|
|
75
|
-
field :
|
|
76
|
-
#
|
|
68
|
+
# The total number of clicks on the partner's links
|
|
69
|
+
field :total_clicks, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalClicks') } }
|
|
70
|
+
# The total number of leads generated by the partner's links
|
|
71
|
+
field :total_leads, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalLeads') } }
|
|
72
|
+
# The total number of leads that converted to paying customers
|
|
73
|
+
field :total_conversions, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalConversions') } }
|
|
74
|
+
# The total number of sales generated by the partner's links (includes recurring sales)
|
|
75
|
+
field :total_sales, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalSales') } }
|
|
76
|
+
# Total revenue generated by the partner's links
|
|
77
|
+
field :total_sale_amount, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalSaleAmount') } }
|
|
78
|
+
# Net revenue after commissions (`Total Revenue - Total Commissions`)
|
|
77
79
|
field :net_revenue, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('netRevenue') } }
|
|
80
|
+
# Earnings Per Click (EPC) (`Total Revenue ÷ Total Clicks`)
|
|
81
|
+
field :earnings_per_click, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('earningsPerClick') } }
|
|
82
|
+
# Average lifetime value for each paying customer (`Total Revenue ÷ Total Conversions`)
|
|
83
|
+
field :average_lifetime_value, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('averageLifetimeValue') } }
|
|
84
|
+
# Percentage of clicks that become leads (`Total Leads ÷ Total Clicks`)
|
|
85
|
+
field :click_to_lead_rate, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clickToLeadRate') } }
|
|
86
|
+
# Percentage of clicks that convert to paying customers (`Total Conversions ÷ Total Clicks`)
|
|
87
|
+
field :click_to_conversion_rate, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clickToConversionRate') } }
|
|
88
|
+
# Percentage of leads that convert to paying customers (`Total Conversions ÷ Total Leads`)
|
|
89
|
+
field :lead_to_conversion_rate, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leadToConversionRate') } }
|
|
90
|
+
# Return On Ad Spend (ROAS) (`Total Revenue ÷ Total Commissions`)
|
|
91
|
+
field :return_on_ad_spend, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('returnOnAdSpend') } }
|
|
78
92
|
# The partner's website URL (including the https protocol).
|
|
79
93
|
field :website, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('website') } }
|
|
80
94
|
# The partner's YouTube channel username (e.g. `johndoe`).
|
|
@@ -88,8 +102,8 @@ module OpenApiSDK
|
|
|
88
102
|
# The partner's TikTok username (e.g. `johndoe`).
|
|
89
103
|
field :tiktok, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tiktok') } }
|
|
90
104
|
|
|
91
|
-
sig { params(id: ::String, name: ::String, program_id: ::String, partner_id: ::String, created_at: ::String, status: Models::Operations::CreatePartnerStatus, company_name: T.nilable(::String), email: T.nilable(::String), image: T.nilable(::String), country: T.nilable(::String), paypal_email: T.nilable(::String), stripe_connect_id: T.nilable(::String), payouts_enabled_at: T.nilable(::String), tenant_id: T.nilable(::String), links: T.nilable(T::Array[Models::Operations::CreatePartnerLink]), description: T.nilable(::String), group_id: T.nilable(::String), total_commissions: T.nilable(::Float), click_reward_id: T.nilable(::String), lead_reward_id: T.nilable(::String), sale_reward_id: T.nilable(::String), discount_id: T.nilable(::String), application_id: T.nilable(::String), banned_at: T.nilable(::String), banned_reason: T.nilable(Models::Operations::BannedReason),
|
|
92
|
-
def initialize(id:, name:, program_id:, partner_id:, created_at:, status:, company_name: nil, email: nil, image: nil, country: nil, paypal_email: nil, stripe_connect_id: nil, payouts_enabled_at: nil, tenant_id: nil, links: nil, description: nil, group_id: nil, total_commissions: 0.0, click_reward_id: nil, lead_reward_id: nil, sale_reward_id: nil, discount_id: nil, application_id: nil, banned_at: nil, banned_reason: nil,
|
|
105
|
+
sig { params(id: ::String, name: ::String, program_id: ::String, partner_id: ::String, created_at: ::String, status: Models::Operations::CreatePartnerStatus, company_name: T.nilable(::String), email: T.nilable(::String), image: T.nilable(::String), country: T.nilable(::String), paypal_email: T.nilable(::String), stripe_connect_id: T.nilable(::String), payouts_enabled_at: T.nilable(::String), trusted_at: T.nilable(::String), tenant_id: T.nilable(::String), links: T.nilable(T::Array[Models::Operations::CreatePartnerLink]), description: T.nilable(::String), group_id: T.nilable(::String), total_commissions: T.nilable(::Float), click_reward_id: T.nilable(::String), lead_reward_id: T.nilable(::String), sale_reward_id: T.nilable(::String), discount_id: T.nilable(::String), application_id: T.nilable(::String), banned_at: T.nilable(::String), banned_reason: T.nilable(Models::Operations::BannedReason), total_clicks: T.nilable(::Float), total_leads: T.nilable(::Float), total_conversions: T.nilable(::Float), total_sales: T.nilable(::Float), total_sale_amount: T.nilable(::Float), net_revenue: T.nilable(::Float), earnings_per_click: T.nilable(::Float), average_lifetime_value: T.nilable(::Float), click_to_lead_rate: T.nilable(::Float), click_to_conversion_rate: T.nilable(::Float), lead_to_conversion_rate: T.nilable(::Float), return_on_ad_spend: T.nilable(::Float), website: T.nilable(::String), youtube: T.nilable(::String), twitter: T.nilable(::String), linkedin: T.nilable(::String), instagram: T.nilable(::String), tiktok: T.nilable(::String)).void }
|
|
106
|
+
def initialize(id:, name:, program_id:, partner_id:, created_at:, status:, company_name: nil, email: nil, image: nil, country: nil, paypal_email: nil, stripe_connect_id: nil, payouts_enabled_at: nil, trusted_at: nil, tenant_id: nil, links: nil, description: nil, group_id: nil, total_commissions: 0.0, click_reward_id: nil, lead_reward_id: nil, sale_reward_id: nil, discount_id: nil, application_id: nil, banned_at: nil, banned_reason: nil, total_clicks: 0.0, total_leads: 0.0, total_conversions: 0.0, total_sales: 0.0, total_sale_amount: 0.0, net_revenue: 0.0, earnings_per_click: nil, average_lifetime_value: nil, click_to_lead_rate: nil, click_to_conversion_rate: nil, lead_to_conversion_rate: nil, return_on_ad_spend: nil, website: nil, youtube: nil, twitter: nil, linkedin: nil, instagram: nil, tiktok: nil)
|
|
93
107
|
@id = id
|
|
94
108
|
@name = name
|
|
95
109
|
@program_id = program_id
|
|
@@ -103,6 +117,7 @@ module OpenApiSDK
|
|
|
103
117
|
@paypal_email = paypal_email
|
|
104
118
|
@stripe_connect_id = stripe_connect_id
|
|
105
119
|
@payouts_enabled_at = payouts_enabled_at
|
|
120
|
+
@trusted_at = trusted_at
|
|
106
121
|
@tenant_id = tenant_id
|
|
107
122
|
@links = links
|
|
108
123
|
@description = description
|
|
@@ -115,12 +130,18 @@ module OpenApiSDK
|
|
|
115
130
|
@application_id = application_id
|
|
116
131
|
@banned_at = banned_at
|
|
117
132
|
@banned_reason = banned_reason
|
|
118
|
-
@
|
|
119
|
-
@
|
|
120
|
-
@
|
|
121
|
-
@
|
|
122
|
-
@
|
|
133
|
+
@total_clicks = total_clicks
|
|
134
|
+
@total_leads = total_leads
|
|
135
|
+
@total_conversions = total_conversions
|
|
136
|
+
@total_sales = total_sales
|
|
137
|
+
@total_sale_amount = total_sale_amount
|
|
123
138
|
@net_revenue = net_revenue
|
|
139
|
+
@earnings_per_click = earnings_per_click
|
|
140
|
+
@average_lifetime_value = average_lifetime_value
|
|
141
|
+
@click_to_lead_rate = click_to_lead_rate
|
|
142
|
+
@click_to_conversion_rate = click_to_conversion_rate
|
|
143
|
+
@lead_to_conversion_rate = lead_to_conversion_rate
|
|
144
|
+
@return_on_ad_spend = return_on_ad_spend
|
|
124
145
|
@website = website
|
|
125
146
|
@youtube = youtube
|
|
126
147
|
@twitter = twitter
|
|
@@ -145,6 +166,7 @@ module OpenApiSDK
|
|
|
145
166
|
return false unless @paypal_email == other.paypal_email
|
|
146
167
|
return false unless @stripe_connect_id == other.stripe_connect_id
|
|
147
168
|
return false unless @payouts_enabled_at == other.payouts_enabled_at
|
|
169
|
+
return false unless @trusted_at == other.trusted_at
|
|
148
170
|
return false unless @tenant_id == other.tenant_id
|
|
149
171
|
return false unless @links == other.links
|
|
150
172
|
return false unless @description == other.description
|
|
@@ -157,12 +179,18 @@ module OpenApiSDK
|
|
|
157
179
|
return false unless @application_id == other.application_id
|
|
158
180
|
return false unless @banned_at == other.banned_at
|
|
159
181
|
return false unless @banned_reason == other.banned_reason
|
|
160
|
-
return false unless @
|
|
161
|
-
return false unless @
|
|
162
|
-
return false unless @
|
|
163
|
-
return false unless @
|
|
164
|
-
return false unless @
|
|
182
|
+
return false unless @total_clicks == other.total_clicks
|
|
183
|
+
return false unless @total_leads == other.total_leads
|
|
184
|
+
return false unless @total_conversions == other.total_conversions
|
|
185
|
+
return false unless @total_sales == other.total_sales
|
|
186
|
+
return false unless @total_sale_amount == other.total_sale_amount
|
|
165
187
|
return false unless @net_revenue == other.net_revenue
|
|
188
|
+
return false unless @earnings_per_click == other.earnings_per_click
|
|
189
|
+
return false unless @average_lifetime_value == other.average_lifetime_value
|
|
190
|
+
return false unless @click_to_lead_rate == other.click_to_lead_rate
|
|
191
|
+
return false unless @click_to_conversion_rate == other.click_to_conversion_rate
|
|
192
|
+
return false unless @lead_to_conversion_rate == other.lead_to_conversion_rate
|
|
193
|
+
return false unless @return_on_ad_spend == other.return_on_ad_spend
|
|
166
194
|
return false unless @website == other.website
|
|
167
195
|
return false unless @youtube == other.youtube
|
|
168
196
|
return false unless @twitter == other.twitter
|
|
@@ -34,6 +34,8 @@ class OpenApiSDK::Models::Operations::CreatePartnerResponseBody
|
|
|
34
34
|
def stripe_connect_id=(str_); end
|
|
35
35
|
def payouts_enabled_at(); end
|
|
36
36
|
def payouts_enabled_at=(str_); end
|
|
37
|
+
def trusted_at(); end
|
|
38
|
+
def trusted_at=(str_); end
|
|
37
39
|
def tenant_id(); end
|
|
38
40
|
def tenant_id=(str_); end
|
|
39
41
|
def links(); end
|
|
@@ -58,18 +60,30 @@ class OpenApiSDK::Models::Operations::CreatePartnerResponseBody
|
|
|
58
60
|
def banned_at=(str_); end
|
|
59
61
|
def banned_reason(); end
|
|
60
62
|
def banned_reason=(str_); end
|
|
61
|
-
def
|
|
62
|
-
def
|
|
63
|
-
def
|
|
64
|
-
def
|
|
65
|
-
def
|
|
66
|
-
def
|
|
67
|
-
def
|
|
68
|
-
def
|
|
69
|
-
def
|
|
70
|
-
def
|
|
63
|
+
def total_clicks(); end
|
|
64
|
+
def total_clicks=(str_); end
|
|
65
|
+
def total_leads(); end
|
|
66
|
+
def total_leads=(str_); end
|
|
67
|
+
def total_conversions(); end
|
|
68
|
+
def total_conversions=(str_); end
|
|
69
|
+
def total_sales(); end
|
|
70
|
+
def total_sales=(str_); end
|
|
71
|
+
def total_sale_amount(); end
|
|
72
|
+
def total_sale_amount=(str_); end
|
|
71
73
|
def net_revenue(); end
|
|
72
74
|
def net_revenue=(str_); end
|
|
75
|
+
def earnings_per_click(); end
|
|
76
|
+
def earnings_per_click=(str_); end
|
|
77
|
+
def average_lifetime_value(); end
|
|
78
|
+
def average_lifetime_value=(str_); end
|
|
79
|
+
def click_to_lead_rate(); end
|
|
80
|
+
def click_to_lead_rate=(str_); end
|
|
81
|
+
def click_to_conversion_rate(); end
|
|
82
|
+
def click_to_conversion_rate=(str_); end
|
|
83
|
+
def lead_to_conversion_rate(); end
|
|
84
|
+
def lead_to_conversion_rate=(str_); end
|
|
85
|
+
def return_on_ad_spend(); end
|
|
86
|
+
def return_on_ad_spend=(str_); end
|
|
73
87
|
def website(); end
|
|
74
88
|
def website=(str_); end
|
|
75
89
|
def youtube(); end
|
|
@@ -25,15 +25,18 @@ module OpenApiSDK
|
|
|
25
25
|
field :payouts_enabled_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabledAt'), required: true } }
|
|
26
26
|
# The partner's country (required for tax purposes).
|
|
27
27
|
field :country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country'), required: true } }
|
|
28
|
+
# The partner's group ID on Dub.
|
|
29
|
+
field :group_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('groupId') } }
|
|
28
30
|
|
|
29
|
-
sig { params(id: ::String, name: ::String, email: T.nilable(::String), image: T.nilable(::String), payouts_enabled_at: T.nilable(::String), country: T.nilable(::String)).void }
|
|
30
|
-
def initialize(id:, name:, email: nil, image: nil, payouts_enabled_at: nil, country: nil)
|
|
31
|
+
sig { params(id: ::String, name: ::String, email: T.nilable(::String), image: T.nilable(::String), payouts_enabled_at: T.nilable(::String), country: T.nilable(::String), group_id: T.nilable(::String)).void }
|
|
32
|
+
def initialize(id:, name:, email: nil, image: nil, payouts_enabled_at: nil, country: nil, group_id: nil)
|
|
31
33
|
@id = id
|
|
32
34
|
@name = name
|
|
33
35
|
@email = email
|
|
34
36
|
@image = image
|
|
35
37
|
@payouts_enabled_at = payouts_enabled_at
|
|
36
38
|
@country = country
|
|
39
|
+
@group_id = group_id
|
|
37
40
|
end
|
|
38
41
|
|
|
39
42
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
@@ -45,6 +48,7 @@ module OpenApiSDK
|
|
|
45
48
|
return false unless @image == other.image
|
|
46
49
|
return false unless @payouts_enabled_at == other.payouts_enabled_at
|
|
47
50
|
return false unless @country == other.country
|
|
51
|
+
return false unless @group_id == other.group_id
|
|
48
52
|
true
|
|
49
53
|
end
|
|
50
54
|
end
|
|
@@ -33,6 +33,8 @@ module OpenApiSDK
|
|
|
33
33
|
field :start, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'start', 'style': 'form', 'explode': true } }
|
|
34
34
|
# The end date of the date range to filter the commissions by.
|
|
35
35
|
field :end_, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'end', 'style': 'form', 'explode': true } }
|
|
36
|
+
|
|
37
|
+
field :timezone, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'timezone', 'style': 'form', 'explode': true } }
|
|
36
38
|
# The field to sort the list of commissions by.
|
|
37
39
|
field :sort_by, Crystalline::Nilable.new(Models::Operations::ListCommissionsQueryParamSortBy), { 'query_param': { 'field_name': 'sortBy', 'style': 'form', 'explode': true } }
|
|
38
40
|
# The sort order for the list of commissions.
|
|
@@ -44,8 +46,8 @@ module OpenApiSDK
|
|
|
44
46
|
# The number of items per page.
|
|
45
47
|
field :page_size, Crystalline::Nilable.new(::Float), { 'query_param': { 'field_name': 'pageSize', 'style': 'form', 'explode': true } }
|
|
46
48
|
|
|
47
|
-
sig { params(type: T.nilable(Models::Operations::Type), customer_id: T.nilable(::String), payout_id: T.nilable(::String), partner_id: T.nilable(::String), tenant_id: T.nilable(::String), group_id: T.nilable(::String), invoice_id: T.nilable(::String), status: T.nilable(Models::Operations::QueryParamStatus), start: T.nilable(::String), end_: T.nilable(::String), sort_by: T.nilable(Models::Operations::ListCommissionsQueryParamSortBy), sort_order: T.nilable(Models::Operations::ListCommissionsQueryParamSortOrder), interval: T.nilable(Models::Operations::ListCommissionsQueryParamInterval), page: T.nilable(::Float), page_size: T.nilable(::Float)).void }
|
|
48
|
-
def initialize(type: nil, customer_id: nil, payout_id: nil, partner_id: nil, tenant_id: nil, group_id: nil, invoice_id: nil, status: nil, start: nil, end_: nil, sort_by: Models::Operations::ListCommissionsQueryParamSortBy::CREATED_AT, sort_order: Models::Operations::ListCommissionsQueryParamSortOrder::DESC, interval: Models::Operations::ListCommissionsQueryParamInterval::ALL, page: 1.0, page_size: 100.0)
|
|
49
|
+
sig { params(type: T.nilable(Models::Operations::Type), customer_id: T.nilable(::String), payout_id: T.nilable(::String), partner_id: T.nilable(::String), tenant_id: T.nilable(::String), group_id: T.nilable(::String), invoice_id: T.nilable(::String), status: T.nilable(Models::Operations::QueryParamStatus), start: T.nilable(::String), end_: T.nilable(::String), timezone: T.nilable(::String), sort_by: T.nilable(Models::Operations::ListCommissionsQueryParamSortBy), sort_order: T.nilable(Models::Operations::ListCommissionsQueryParamSortOrder), interval: T.nilable(Models::Operations::ListCommissionsQueryParamInterval), page: T.nilable(::Float), page_size: T.nilable(::Float)).void }
|
|
50
|
+
def initialize(type: nil, customer_id: nil, payout_id: nil, partner_id: nil, tenant_id: nil, group_id: nil, invoice_id: nil, status: nil, start: nil, end_: nil, timezone: nil, sort_by: Models::Operations::ListCommissionsQueryParamSortBy::CREATED_AT, sort_order: Models::Operations::ListCommissionsQueryParamSortOrder::DESC, interval: Models::Operations::ListCommissionsQueryParamInterval::ALL, page: 1.0, page_size: 100.0)
|
|
49
51
|
@type = type
|
|
50
52
|
@customer_id = customer_id
|
|
51
53
|
@payout_id = payout_id
|
|
@@ -56,6 +58,7 @@ module OpenApiSDK
|
|
|
56
58
|
@status = status
|
|
57
59
|
@start = start
|
|
58
60
|
@end_ = end_
|
|
61
|
+
@timezone = timezone
|
|
59
62
|
@sort_by = sort_by
|
|
60
63
|
@sort_order = sort_order
|
|
61
64
|
@interval = interval
|
|
@@ -76,6 +79,7 @@ module OpenApiSDK
|
|
|
76
79
|
return false unless @status == other.status
|
|
77
80
|
return false unless @start == other.start
|
|
78
81
|
return false unless @end_ == other.end_
|
|
82
|
+
return false unless @timezone == other.timezone
|
|
79
83
|
return false unless @sort_by == other.sort_by
|
|
80
84
|
return false unless @sort_order == other.sort_order
|
|
81
85
|
return false unless @interval == other.interval
|
|
@@ -61,6 +61,8 @@ module OpenApiSDK
|
|
|
61
61
|
field :tag_ids, Crystalline::Nilable.new(Crystalline::Union.new(::String, Crystalline::Array.new(::String))), { 'query_param': { 'field_name': 'tagIds', 'style': 'form', 'explode': true } }
|
|
62
62
|
# The folder ID to retrieve analytics for. If not provided, return analytics for unsorted links.
|
|
63
63
|
field :folder_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'folderId', 'style': 'form', 'explode': true } }
|
|
64
|
+
# The group ID to retrieve analytics for.
|
|
65
|
+
field :group_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'groupId', 'style': 'form', 'explode': true } }
|
|
64
66
|
# Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both.
|
|
65
67
|
field :root, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'root', 'style': 'form', 'explode': true } }
|
|
66
68
|
# Filter sales by type: 'new' for first-time purchases, 'recurring' for repeat purchases. If undefined, returns both.
|
|
@@ -98,8 +100,8 @@ module OpenApiSDK
|
|
|
98
100
|
# DEPRECATED. Use `sortOrder` instead.
|
|
99
101
|
field :order, Crystalline::Nilable.new(Models::Operations::Order), { 'query_param': { 'field_name': 'order', 'style': 'form', 'explode': true } }
|
|
100
102
|
|
|
101
|
-
sig { params(domain: T.nilable(::String), key: T.nilable(::String), link_id: T.nilable(::String), external_id: T.nilable(::String), tenant_id: T.nilable(::String), program_id: T.nilable(::String), partner_id: T.nilable(::String), customer_id: T.nilable(::String), interval: T.nilable(Models::Operations::QueryParamInterval), start: T.nilable(::String), end_: T.nilable(::String), country: T.nilable(::String), city: T.nilable(::String), region: T.nilable(::String), continent: T.nilable(Models::Shared::ContinentCode), device: T.nilable(::String), browser: T.nilable(::String), os: T.nilable(::String), trigger: T.nilable(Models::Operations::QueryParamTrigger), referer: T.nilable(::String), referer_url: T.nilable(::String), url: T.nilable(::String), tag_ids: T.nilable(T.any(::String, T::Array[::String])), folder_id: T.nilable(::String), root: T.nilable(T::Boolean), sale_type: T.nilable(Models::Operations::QueryParamSaleType), query: T.nilable(::String), tag_id: T.nilable(::String), qr: T.nilable(T::Boolean), event: T.nilable(Models::Operations::QueryParamEvent), timezone: T.nilable(::String), utm_source: T.nilable(::String), utm_medium: T.nilable(::String), utm_campaign: T.nilable(::String), utm_term: T.nilable(::String), utm_content: T.nilable(::String), ref: T.nilable(::String), page: T.nilable(::Float), limit: T.nilable(::Float), sort_order: T.nilable(Models::Operations::QueryParamSortOrder), sort_by: T.nilable(Models::Operations::QueryParamSortBy), order: T.nilable(Models::Operations::Order)).void }
|
|
102
|
-
def initialize(domain: nil, key: nil, link_id: nil, external_id: nil, tenant_id: nil, program_id: nil, partner_id: nil, customer_id: nil, interval: nil, start: nil, end_: nil, country: nil, city: nil, region: nil, continent: nil, device: nil, browser: nil, os: nil, trigger: nil, referer: nil, referer_url: nil, url: nil, tag_ids: nil, folder_id: nil, root: nil, sale_type: nil, query: nil, tag_id: nil, qr: nil, event: Models::Operations::QueryParamEvent::CLICKS, timezone: 'UTC', utm_source: nil, utm_medium: nil, utm_campaign: nil, utm_term: nil, utm_content: nil, ref: nil, page: 1.0, limit: 100.0, sort_order: Models::Operations::QueryParamSortOrder::DESC, sort_by: Models::Operations::QueryParamSortBy::TIMESTAMP, order: Models::Operations::Order::DESC)
|
|
103
|
+
sig { params(domain: T.nilable(::String), key: T.nilable(::String), link_id: T.nilable(::String), external_id: T.nilable(::String), tenant_id: T.nilable(::String), program_id: T.nilable(::String), partner_id: T.nilable(::String), customer_id: T.nilable(::String), interval: T.nilable(Models::Operations::QueryParamInterval), start: T.nilable(::String), end_: T.nilable(::String), country: T.nilable(::String), city: T.nilable(::String), region: T.nilable(::String), continent: T.nilable(Models::Shared::ContinentCode), device: T.nilable(::String), browser: T.nilable(::String), os: T.nilable(::String), trigger: T.nilable(Models::Operations::QueryParamTrigger), referer: T.nilable(::String), referer_url: T.nilable(::String), url: T.nilable(::String), tag_ids: T.nilable(T.any(::String, T::Array[::String])), folder_id: T.nilable(::String), group_id: T.nilable(::String), root: T.nilable(T::Boolean), sale_type: T.nilable(Models::Operations::QueryParamSaleType), query: T.nilable(::String), tag_id: T.nilable(::String), qr: T.nilable(T::Boolean), event: T.nilable(Models::Operations::QueryParamEvent), timezone: T.nilable(::String), utm_source: T.nilable(::String), utm_medium: T.nilable(::String), utm_campaign: T.nilable(::String), utm_term: T.nilable(::String), utm_content: T.nilable(::String), ref: T.nilable(::String), page: T.nilable(::Float), limit: T.nilable(::Float), sort_order: T.nilable(Models::Operations::QueryParamSortOrder), sort_by: T.nilable(Models::Operations::QueryParamSortBy), order: T.nilable(Models::Operations::Order)).void }
|
|
104
|
+
def initialize(domain: nil, key: nil, link_id: nil, external_id: nil, tenant_id: nil, program_id: nil, partner_id: nil, customer_id: nil, interval: nil, start: nil, end_: nil, country: nil, city: nil, region: nil, continent: nil, device: nil, browser: nil, os: nil, trigger: nil, referer: nil, referer_url: nil, url: nil, tag_ids: nil, folder_id: nil, group_id: nil, root: nil, sale_type: nil, query: nil, tag_id: nil, qr: nil, event: Models::Operations::QueryParamEvent::CLICKS, timezone: 'UTC', utm_source: nil, utm_medium: nil, utm_campaign: nil, utm_term: nil, utm_content: nil, ref: nil, page: 1.0, limit: 100.0, sort_order: Models::Operations::QueryParamSortOrder::DESC, sort_by: Models::Operations::QueryParamSortBy::TIMESTAMP, order: Models::Operations::Order::DESC)
|
|
103
105
|
@domain = domain
|
|
104
106
|
@key = key
|
|
105
107
|
@link_id = link_id
|
|
@@ -124,6 +126,7 @@ module OpenApiSDK
|
|
|
124
126
|
@url = url
|
|
125
127
|
@tag_ids = tag_ids
|
|
126
128
|
@folder_id = folder_id
|
|
129
|
+
@group_id = group_id
|
|
127
130
|
@root = root
|
|
128
131
|
@sale_type = sale_type
|
|
129
132
|
@query = query
|
|
@@ -171,6 +174,7 @@ module OpenApiSDK
|
|
|
171
174
|
return false unless @url == other.url
|
|
172
175
|
return false unless @tag_ids == other.tag_ids
|
|
173
176
|
return false unless @folder_id == other.folder_id
|
|
177
|
+
return false unless @group_id == other.group_id
|
|
174
178
|
return false unless @root == other.root
|
|
175
179
|
return false unless @sale_type == other.sale_type
|
|
176
180
|
return false unless @query == other.query
|
|
@@ -8,19 +8,24 @@ module OpenApiSDK
|
|
|
8
8
|
module Models
|
|
9
9
|
module Operations
|
|
10
10
|
|
|
11
|
-
# ListPartnersQueryParamSortBy - The field to sort the partners by. The default is `
|
|
11
|
+
# ListPartnersQueryParamSortBy - The field to sort the partners by. The default is `totalSaleAmount`.
|
|
12
12
|
class ListPartnersQueryParamSortBy < T::Enum
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
enums do
|
|
16
16
|
CREATED_AT = new('createdAt')
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
SALE_AMOUNT = new('saleAmount')
|
|
17
|
+
TOTAL_CLICKS = new('totalClicks')
|
|
18
|
+
TOTAL_LEADS = new('totalLeads')
|
|
19
|
+
TOTAL_CONVERSIONS = new('totalConversions')
|
|
20
|
+
TOTAL_SALE_AMOUNT = new('totalSaleAmount')
|
|
22
21
|
TOTAL_COMMISSIONS = new('totalCommissions')
|
|
23
22
|
NET_REVENUE = new('netRevenue')
|
|
23
|
+
EARNINGS_PER_CLICK = new('earningsPerClick')
|
|
24
|
+
AVERAGE_LIFETIME_VALUE = new('averageLifetimeValue')
|
|
25
|
+
CLICK_TO_LEAD_RATE = new('clickToLeadRate')
|
|
26
|
+
CLICK_TO_CONVERSION_RATE = new('clickToConversionRate')
|
|
27
|
+
LEAD_TO_CONVERSION_RATE = new('leadToConversionRate')
|
|
28
|
+
RETURN_ON_AD_SPEND = new('returnOnAdSpend')
|
|
24
29
|
end
|
|
25
30
|
end
|
|
26
31
|
end
|
|
@@ -23,9 +23,7 @@ module OpenApiSDK
|
|
|
23
23
|
field :tenant_id, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'tenantId', 'style': 'form', 'explode': true } }
|
|
24
24
|
# A search query to filter partners by ID, name, email, or link.
|
|
25
25
|
field :search, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'search', 'style': 'form', 'explode': true } }
|
|
26
|
-
#
|
|
27
|
-
field :include_expanded_fields, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'includeExpandedFields', 'style': 'form', 'explode': true } }
|
|
28
|
-
# The field to sort the partners by. The default is `saleAmount`.
|
|
26
|
+
# The field to sort the partners by. The default is `totalSaleAmount`.
|
|
29
27
|
field :sort_by, Crystalline::Nilable.new(Models::Operations::ListPartnersQueryParamSortBy), { 'query_param': { 'field_name': 'sortBy', 'style': 'form', 'explode': true } }
|
|
30
28
|
# The sort order. The default is `desc`.
|
|
31
29
|
field :sort_order, Crystalline::Nilable.new(Models::Operations::ListPartnersQueryParamSortOrder), { 'query_param': { 'field_name': 'sortOrder', 'style': 'form', 'explode': true } }
|
|
@@ -34,14 +32,13 @@ module OpenApiSDK
|
|
|
34
32
|
# The number of items per page.
|
|
35
33
|
field :page_size, Crystalline::Nilable.new(::Float), { 'query_param': { 'field_name': 'pageSize', 'style': 'form', 'explode': true } }
|
|
36
34
|
|
|
37
|
-
sig { params(status: T.nilable(Models::Operations::ListPartnersQueryParamStatus), country: T.nilable(::String), email: T.nilable(::String), tenant_id: T.nilable(::String), search: T.nilable(::String),
|
|
38
|
-
def initialize(status: nil, country: nil, email: nil, tenant_id: nil, search: nil,
|
|
35
|
+
sig { params(status: T.nilable(Models::Operations::ListPartnersQueryParamStatus), country: T.nilable(::String), email: T.nilable(::String), tenant_id: T.nilable(::String), search: T.nilable(::String), sort_by: T.nilable(Models::Operations::ListPartnersQueryParamSortBy), sort_order: T.nilable(Models::Operations::ListPartnersQueryParamSortOrder), page: T.nilable(::Float), page_size: T.nilable(::Float)).void }
|
|
36
|
+
def initialize(status: nil, country: nil, email: nil, tenant_id: nil, search: nil, sort_by: Models::Operations::ListPartnersQueryParamSortBy::TOTAL_SALE_AMOUNT, sort_order: Models::Operations::ListPartnersQueryParamSortOrder::DESC, page: 1.0, page_size: 100.0)
|
|
39
37
|
@status = status
|
|
40
38
|
@country = country
|
|
41
39
|
@email = email
|
|
42
40
|
@tenant_id = tenant_id
|
|
43
41
|
@search = search
|
|
44
|
-
@include_expanded_fields = include_expanded_fields
|
|
45
42
|
@sort_by = sort_by
|
|
46
43
|
@sort_order = sort_order
|
|
47
44
|
@page = page
|
|
@@ -56,7 +53,6 @@ module OpenApiSDK
|
|
|
56
53
|
return false unless @email == other.email
|
|
57
54
|
return false unless @tenant_id == other.tenant_id
|
|
58
55
|
return false unless @search == other.search
|
|
59
|
-
return false unless @include_expanded_fields == other.include_expanded_fields
|
|
60
56
|
return false unless @sort_by == other.sort_by
|
|
61
57
|
return false unless @sort_order == other.sort_order
|
|
62
58
|
return false unless @page == other.page
|
|
@@ -18,8 +18,6 @@ class OpenApiSDK::Models::Operations::ListPartnersRequest
|
|
|
18
18
|
def tenant_id=(str_); end
|
|
19
19
|
def search(); end
|
|
20
20
|
def search=(str_); end
|
|
21
|
-
def include_expanded_fields(); end
|
|
22
|
-
def include_expanded_fields=(str_); end
|
|
23
21
|
def sort_by(); end
|
|
24
22
|
def sort_by=(str_); end
|
|
25
23
|
def sort_order(); end
|
|
@@ -39,6 +39,8 @@ module OpenApiSDK
|
|
|
39
39
|
field :stripe_connect_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('stripeConnectId'), required: true } }
|
|
40
40
|
# The date when the partner enabled payouts.
|
|
41
41
|
field :payouts_enabled_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabledAt'), required: true } }
|
|
42
|
+
# The date when the partner received the trusted badge in the partner network.
|
|
43
|
+
field :trusted_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('trustedAt'), required: true } }
|
|
42
44
|
# The partner's unique ID within your database. Can be useful for associating the partner with a user in your database and retrieving/update their data in the future.
|
|
43
45
|
field :tenant_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tenantId'), required: true } }
|
|
44
46
|
# The partner's referral links in this program.
|
|
@@ -47,7 +49,7 @@ module OpenApiSDK
|
|
|
47
49
|
field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
|
|
48
50
|
# The partner's group ID on Dub.
|
|
49
51
|
field :group_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('groupId') } }
|
|
50
|
-
# The total commissions paid to the partner for their referrals
|
|
52
|
+
# The total commissions paid to the partner for their referrals
|
|
51
53
|
field :total_commissions, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalCommissions') } }
|
|
52
54
|
|
|
53
55
|
field :click_reward_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clickRewardId') } }
|
|
@@ -63,18 +65,30 @@ module OpenApiSDK
|
|
|
63
65
|
field :banned_at, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bannedAt') } }
|
|
64
66
|
# If the partner was banned from the program, this is the reason for the ban.
|
|
65
67
|
field :banned_reason, Crystalline::Nilable.new(Models::Operations::ListPartnersBannedReason), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bannedReason'), 'decoder': Utils.enum_from_string(Models::Operations::ListPartnersBannedReason, true) } }
|
|
66
|
-
# The total number of clicks on the partner's links
|
|
67
|
-
field :
|
|
68
|
-
# The total number of leads generated by the partner's links
|
|
69
|
-
field :
|
|
70
|
-
# The total number of leads that converted to paying customers
|
|
71
|
-
field :
|
|
72
|
-
# The total number of sales generated by the partner's links (includes recurring sales)
|
|
73
|
-
field :
|
|
74
|
-
#
|
|
75
|
-
field :
|
|
76
|
-
#
|
|
68
|
+
# The total number of clicks on the partner's links
|
|
69
|
+
field :total_clicks, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalClicks') } }
|
|
70
|
+
# The total number of leads generated by the partner's links
|
|
71
|
+
field :total_leads, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalLeads') } }
|
|
72
|
+
# The total number of leads that converted to paying customers
|
|
73
|
+
field :total_conversions, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalConversions') } }
|
|
74
|
+
# The total number of sales generated by the partner's links (includes recurring sales)
|
|
75
|
+
field :total_sales, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalSales') } }
|
|
76
|
+
# Total revenue generated by the partner's links
|
|
77
|
+
field :total_sale_amount, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('totalSaleAmount') } }
|
|
78
|
+
# Net revenue after commissions (`Total Revenue - Total Commissions`)
|
|
77
79
|
field :net_revenue, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('netRevenue') } }
|
|
80
|
+
# Earnings Per Click (EPC) (`Total Revenue ÷ Total Clicks`)
|
|
81
|
+
field :earnings_per_click, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('earningsPerClick') } }
|
|
82
|
+
# Average lifetime value for each paying customer (`Total Revenue ÷ Total Conversions`)
|
|
83
|
+
field :average_lifetime_value, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('averageLifetimeValue') } }
|
|
84
|
+
# Percentage of clicks that become leads (`Total Leads ÷ Total Clicks`)
|
|
85
|
+
field :click_to_lead_rate, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clickToLeadRate') } }
|
|
86
|
+
# Percentage of clicks that convert to paying customers (`Total Conversions ÷ Total Clicks`)
|
|
87
|
+
field :click_to_conversion_rate, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clickToConversionRate') } }
|
|
88
|
+
# Percentage of leads that convert to paying customers (`Total Conversions ÷ Total Leads`)
|
|
89
|
+
field :lead_to_conversion_rate, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leadToConversionRate') } }
|
|
90
|
+
# Return On Ad Spend (ROAS) (`Total Revenue ÷ Total Commissions`)
|
|
91
|
+
field :return_on_ad_spend, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('returnOnAdSpend') } }
|
|
78
92
|
# The partner's website URL (including the https protocol).
|
|
79
93
|
field :website, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('website') } }
|
|
80
94
|
# The partner's YouTube channel username (e.g. `johndoe`).
|
|
@@ -88,8 +102,8 @@ module OpenApiSDK
|
|
|
88
102
|
# The partner's TikTok username (e.g. `johndoe`).
|
|
89
103
|
field :tiktok, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tiktok') } }
|
|
90
104
|
|
|
91
|
-
sig { params(id: ::String, name: ::String, program_id: ::String, partner_id: ::String, created_at: ::String, status: Models::Operations::ListPartnersStatus, company_name: T.nilable(::String), email: T.nilable(::String), image: T.nilable(::String), country: T.nilable(::String), paypal_email: T.nilable(::String), stripe_connect_id: T.nilable(::String), payouts_enabled_at: T.nilable(::String), tenant_id: T.nilable(::String), links: T.nilable(T::Array[Models::Operations::ListPartnersLink]), description: T.nilable(::String), group_id: T.nilable(::String), total_commissions: T.nilable(::Float), click_reward_id: T.nilable(::String), lead_reward_id: T.nilable(::String), sale_reward_id: T.nilable(::String), discount_id: T.nilable(::String), application_id: T.nilable(::String), banned_at: T.nilable(::String), banned_reason: T.nilable(Models::Operations::ListPartnersBannedReason),
|
|
92
|
-
def initialize(id:, name:, program_id:, partner_id:, created_at:, status:, company_name: nil, email: nil, image: nil, country: nil, paypal_email: nil, stripe_connect_id: nil, payouts_enabled_at: nil, tenant_id: nil, links: nil, description: nil, group_id: nil, total_commissions: 0.0, click_reward_id: nil, lead_reward_id: nil, sale_reward_id: nil, discount_id: nil, application_id: nil, banned_at: nil, banned_reason: nil,
|
|
105
|
+
sig { params(id: ::String, name: ::String, program_id: ::String, partner_id: ::String, created_at: ::String, status: Models::Operations::ListPartnersStatus, company_name: T.nilable(::String), email: T.nilable(::String), image: T.nilable(::String), country: T.nilable(::String), paypal_email: T.nilable(::String), stripe_connect_id: T.nilable(::String), payouts_enabled_at: T.nilable(::String), trusted_at: T.nilable(::String), tenant_id: T.nilable(::String), links: T.nilable(T::Array[Models::Operations::ListPartnersLink]), description: T.nilable(::String), group_id: T.nilable(::String), total_commissions: T.nilable(::Float), click_reward_id: T.nilable(::String), lead_reward_id: T.nilable(::String), sale_reward_id: T.nilable(::String), discount_id: T.nilable(::String), application_id: T.nilable(::String), banned_at: T.nilable(::String), banned_reason: T.nilable(Models::Operations::ListPartnersBannedReason), total_clicks: T.nilable(::Float), total_leads: T.nilable(::Float), total_conversions: T.nilable(::Float), total_sales: T.nilable(::Float), total_sale_amount: T.nilable(::Float), net_revenue: T.nilable(::Float), earnings_per_click: T.nilable(::Float), average_lifetime_value: T.nilable(::Float), click_to_lead_rate: T.nilable(::Float), click_to_conversion_rate: T.nilable(::Float), lead_to_conversion_rate: T.nilable(::Float), return_on_ad_spend: T.nilable(::Float), website: T.nilable(::String), youtube: T.nilable(::String), twitter: T.nilable(::String), linkedin: T.nilable(::String), instagram: T.nilable(::String), tiktok: T.nilable(::String)).void }
|
|
106
|
+
def initialize(id:, name:, program_id:, partner_id:, created_at:, status:, company_name: nil, email: nil, image: nil, country: nil, paypal_email: nil, stripe_connect_id: nil, payouts_enabled_at: nil, trusted_at: nil, tenant_id: nil, links: nil, description: nil, group_id: nil, total_commissions: 0.0, click_reward_id: nil, lead_reward_id: nil, sale_reward_id: nil, discount_id: nil, application_id: nil, banned_at: nil, banned_reason: nil, total_clicks: 0.0, total_leads: 0.0, total_conversions: 0.0, total_sales: 0.0, total_sale_amount: 0.0, net_revenue: 0.0, earnings_per_click: nil, average_lifetime_value: nil, click_to_lead_rate: nil, click_to_conversion_rate: nil, lead_to_conversion_rate: nil, return_on_ad_spend: nil, website: nil, youtube: nil, twitter: nil, linkedin: nil, instagram: nil, tiktok: nil)
|
|
93
107
|
@id = id
|
|
94
108
|
@name = name
|
|
95
109
|
@program_id = program_id
|
|
@@ -103,6 +117,7 @@ module OpenApiSDK
|
|
|
103
117
|
@paypal_email = paypal_email
|
|
104
118
|
@stripe_connect_id = stripe_connect_id
|
|
105
119
|
@payouts_enabled_at = payouts_enabled_at
|
|
120
|
+
@trusted_at = trusted_at
|
|
106
121
|
@tenant_id = tenant_id
|
|
107
122
|
@links = links
|
|
108
123
|
@description = description
|
|
@@ -115,12 +130,18 @@ module OpenApiSDK
|
|
|
115
130
|
@application_id = application_id
|
|
116
131
|
@banned_at = banned_at
|
|
117
132
|
@banned_reason = banned_reason
|
|
118
|
-
@
|
|
119
|
-
@
|
|
120
|
-
@
|
|
121
|
-
@
|
|
122
|
-
@
|
|
133
|
+
@total_clicks = total_clicks
|
|
134
|
+
@total_leads = total_leads
|
|
135
|
+
@total_conversions = total_conversions
|
|
136
|
+
@total_sales = total_sales
|
|
137
|
+
@total_sale_amount = total_sale_amount
|
|
123
138
|
@net_revenue = net_revenue
|
|
139
|
+
@earnings_per_click = earnings_per_click
|
|
140
|
+
@average_lifetime_value = average_lifetime_value
|
|
141
|
+
@click_to_lead_rate = click_to_lead_rate
|
|
142
|
+
@click_to_conversion_rate = click_to_conversion_rate
|
|
143
|
+
@lead_to_conversion_rate = lead_to_conversion_rate
|
|
144
|
+
@return_on_ad_spend = return_on_ad_spend
|
|
124
145
|
@website = website
|
|
125
146
|
@youtube = youtube
|
|
126
147
|
@twitter = twitter
|
|
@@ -145,6 +166,7 @@ module OpenApiSDK
|
|
|
145
166
|
return false unless @paypal_email == other.paypal_email
|
|
146
167
|
return false unless @stripe_connect_id == other.stripe_connect_id
|
|
147
168
|
return false unless @payouts_enabled_at == other.payouts_enabled_at
|
|
169
|
+
return false unless @trusted_at == other.trusted_at
|
|
148
170
|
return false unless @tenant_id == other.tenant_id
|
|
149
171
|
return false unless @links == other.links
|
|
150
172
|
return false unless @description == other.description
|
|
@@ -157,12 +179,18 @@ module OpenApiSDK
|
|
|
157
179
|
return false unless @application_id == other.application_id
|
|
158
180
|
return false unless @banned_at == other.banned_at
|
|
159
181
|
return false unless @banned_reason == other.banned_reason
|
|
160
|
-
return false unless @
|
|
161
|
-
return false unless @
|
|
162
|
-
return false unless @
|
|
163
|
-
return false unless @
|
|
164
|
-
return false unless @
|
|
182
|
+
return false unless @total_clicks == other.total_clicks
|
|
183
|
+
return false unless @total_leads == other.total_leads
|
|
184
|
+
return false unless @total_conversions == other.total_conversions
|
|
185
|
+
return false unless @total_sales == other.total_sales
|
|
186
|
+
return false unless @total_sale_amount == other.total_sale_amount
|
|
165
187
|
return false unless @net_revenue == other.net_revenue
|
|
188
|
+
return false unless @earnings_per_click == other.earnings_per_click
|
|
189
|
+
return false unless @average_lifetime_value == other.average_lifetime_value
|
|
190
|
+
return false unless @click_to_lead_rate == other.click_to_lead_rate
|
|
191
|
+
return false unless @click_to_conversion_rate == other.click_to_conversion_rate
|
|
192
|
+
return false unless @lead_to_conversion_rate == other.lead_to_conversion_rate
|
|
193
|
+
return false unless @return_on_ad_spend == other.return_on_ad_spend
|
|
166
194
|
return false unless @website == other.website
|
|
167
195
|
return false unless @youtube == other.youtube
|
|
168
196
|
return false unless @twitter == other.twitter
|