lib/open_api_sdk/models/operations/createpartner_responsebody.rb



# 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