# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
# typed: true
# frozen_string_literal: true
module OpenApiSDK
module Operations
# The created partner
class CreatePartnerResponseBody < ::Crystalline::FieldAugmented
extend T::Sig
# The total number of clicks on the partner's links.
field :clicks, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clicks') } }
# The partner's country (required for tax purposes).
field :country, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country') } }
# The date when the partner was created on Dub.
field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt') } }
# The total earnings/commissions accrued by the partner's links.
field :earnings, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('earnings') } }
# The partner's email address. Should be a unique value across Dub.
field :email, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('email') } }
# The partner's unique ID on Dub.
field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
# The partner's avatar image.
field :image, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('image') } }
# The partner's Instagram username (e.g. `johndoe`).
field :instagram, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('instagram') } }
# The total number of leads generated by the partner's links.
field :leads, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('leads') } }
# The partner's LinkedIn username (e.g. `johndoe`).
field :linkedin, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('linkedin') } }
# The partner's referral links in this program.
field :links, T::Array[::OpenApiSDK::Operations::CreatePartnerLink], { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('links') } }
# The partner's full legal name.
field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
# The date when the partner enabled payouts.
field :payouts_enabled_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabledAt') } }
# The partner's PayPal email (for receiving payouts via PayPal).
field :paypal_email, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('paypalEmail') } }
# The program's unique ID on Dub.
field :program_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('programId') } }
# The total amount of sales (in cents) generated by the partner's links.
field :sale_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleAmount') } }
# The total number of sales generated by the partner's links.
field :sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } }
# The status of the partner's enrollment in the program.
field :status, ::OpenApiSDK::Operations::CreatePartnerStatus, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::CreatePartnerStatus, false) } }
# The partner's Stripe Connect ID (for receiving payouts via Stripe).
field :stripe_connect_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('stripeConnectId') } }
# 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.
field :tenant_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tenantId') } }
# The partner's TikTok username (e.g. `johndoe`).
field :tiktok, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tiktok') } }
# The partner's Twitter username (e.g. `johndoe`).
field :twitter, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('twitter') } }
# The partner's website URL (including the https protocol).
field :website, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('website') } }
# The partner's YouTube channel username (e.g. `johndoe`).
field :youtube, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('youtube') } }
# If the partner submitted an application to join the program, this is the ID of the application.
field :application_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('applicationId') } }
# A brief description of the partner and their background.
field :description, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
sig { params(clicks: ::Float, country: ::String, created_at: ::String, earnings: ::Float, email: ::String, id: ::String, image: ::String, instagram: ::String, leads: ::Float, linkedin: ::String, links: T::Array[::OpenApiSDK::Operations::CreatePartnerLink], name: ::String, payouts_enabled_at: ::String, paypal_email: ::String, program_id: ::String, sale_amount: ::Float, sales: ::Float, status: ::OpenApiSDK::Operations::CreatePartnerStatus, stripe_connect_id: ::String, tenant_id: ::String, tiktok: ::String, twitter: ::String, website: ::String, youtube: ::String, application_id: T.nilable(::String), description: T.nilable(::String)).void }
def initialize(clicks: nil, country: nil, created_at: nil, earnings: nil, email: nil, id: nil, image: nil, instagram: nil, leads: nil, linkedin: nil, links: nil, name: nil, payouts_enabled_at: nil, paypal_email: nil, program_id: nil, sale_amount: nil, sales: nil, status: nil, stripe_connect_id: nil, tenant_id: nil, tiktok: nil, twitter: nil, website: nil, youtube: nil, application_id: nil, description: nil)
@clicks = clicks
@country = country
@created_at = created_at
@earnings = earnings
@email = email
@id = id
@image = image
@instagram = instagram
@leads = leads
@linkedin = linkedin
@links = links
@name = name
@payouts_enabled_at = payouts_enabled_at
@paypal_email = paypal_email
@program_id = program_id
@sale_amount = sale_amount
@sales = sales
@status = status
@stripe_connect_id = stripe_connect_id
@tenant_id = tenant_id
@tiktok = tiktok
@twitter = twitter
@website = website
@youtube = youtube
@application_id = application_id
@description = description
end
end
end
end