ghl-models 0.5.2

Rust data models (DTOs) for the GoHighLevel (HighLevel) API v2 and v3, generated from the official OpenAPI specifications
Documentation
//! `companies` data models for GoHighLevel API V3 (3 types).
//!
//! Generated from HighLevel's official OpenAPI spec for the
//! **Companies** module. Every endpoint that uses these types, with its
//! parameters, required scopes and enum values, is documented in the
//! [`companies` API reference](https://github.com/Shahroz/ghl-rs/blob/main/docs/api/companies.md).
//!
//! Enable with `features = ["companies"]`.
// @generated by xtask/generate_models.py — do not edit by hand.
// Source: https://github.com/GoHighLevel/highlevel-api-docs
// Doc comments are HighLevel's own field descriptions, reflowed verbatim, so
// they aren't held to rustdoc's markdown conventions.
#![allow(
    missing_docs,
    clippy::doc_lazy_continuation,
    clippy::doc_overindented_list_items
)]

use serde::{Deserialize, Serialize};

/// `GetCompanyByIdSchema` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetCompanyByIdSchema {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub email: Option<String>,
    #[serde(rename = "logoUrl", default, skip_serializing_if = "Option::is_none")]
    pub logo_url: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub phone: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub website: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub domain: Option<String>,
    #[serde(
        rename = "spareDomain",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub spare_domain: Option<String>,
    #[serde(
        rename = "privacyPolicy",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub privacy_policy: Option<String>,
    #[serde(
        rename = "termsConditions",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub terms_conditions: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub address: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub city: Option<String>,
    #[serde(
        rename = "postalCode",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub postal_code: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub country: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub state: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub timezone: Option<String>,
    #[serde(
        rename = "relationshipNumber",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub relationship_number: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub subdomain: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub plan: Option<f64>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub currency: Option<String>,
    #[serde(
        rename = "customerType",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub customer_type: Option<String>,
    #[serde(
        rename = "termsOfServiceVersion",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub terms_of_service_version: Option<String>,
    #[serde(
        rename = "termsOfServiceAcceptedBy",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub terms_of_service_accepted_by: Option<String>,
    #[serde(
        rename = "twilioTrialMode",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub twilio_trial_mode: Option<bool>,
    #[serde(
        rename = "twilioFreeCredits",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub twilio_free_credits: Option<f64>,
    #[serde(
        rename = "termsOfServiceAcceptedDate",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub terms_of_service_accepted_date: Option<String>,
    #[serde(
        rename = "privacyPolicyVersion",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub privacy_policy_version: Option<String>,
    #[serde(
        rename = "privacyPolicyAcceptedBy",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub privacy_policy_accepted_by: Option<String>,
    #[serde(
        rename = "privacyPolicyAcceptedDate",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub privacy_policy_accepted_date: Option<String>,
    #[serde(
        rename = "affiliatePolicyVersion",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub affiliate_policy_version: Option<String>,
    #[serde(
        rename = "affiliatePolicyAcceptedBy",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub affiliate_policy_accepted_by: Option<String>,
    #[serde(
        rename = "affiliatePolicyAcceptedDate",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub affiliate_policy_accepted_date: Option<String>,
    #[serde(
        rename = "isReselling",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub is_reselling: Option<bool>,
    #[serde(
        rename = "onboardingInfo",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub onboarding_info: Option<IOnboardingDto>,
    /// Flag to set if upgrade plan is enabled
    #[serde(
        rename = "upgradeEnabledForClients",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub upgrade_enabled_for_clients: Option<bool>,
    /// Flag to set if cancel plan is enabled
    #[serde(
        rename = "cancelEnabledForClients",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub cancel_enabled_for_clients: Option<bool>,
    /// Flag to set if auto suspend is enabled
    #[serde(
        rename = "autoSuspendEnabled",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub auto_suspend_enabled: Option<bool>,
    /// Saas Settings
    #[serde(
        rename = "saasSettings",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub saas_settings: Option<serde_json::Value>,
    #[serde(
        rename = "stripeConnectId",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub stripe_connect_id: Option<String>,
    #[serde(
        rename = "enableDepreciatedFeatures",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub enable_depreciated_features: Option<bool>,
    /// If you want to enable / disable Priority Support for any agency. Default value is false.
    #[serde(
        rename = "premiumUpgraded",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub premium_upgraded: Option<bool>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub status: Option<String>,
    #[serde(
        rename = "locationCount",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub location_count: Option<f64>,
    #[serde(
        rename = "disableEmailService",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub disable_email_service: Option<bool>,
    #[serde(
        rename = "referralId",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub referral_id: Option<String>,
    #[serde(
        rename = "isEnterpriseAccount",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub is_enterprise_account: Option<bool>,
    /// The business niche in which the agency is operating
    #[serde(
        rename = "businessNiche",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub business_niche: Option<String>,
    /// Business category
    #[serde(
        rename = "businessCategory",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub business_category: Option<String>,
    /// The affinity group of the agency
    #[serde(
        rename = "businessAffinityGroup",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub business_affinity_group: Option<String>,
    #[serde(
        rename = "isSandboxAccount",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub is_sandbox_account: Option<bool>,
    /// Flag to determine if new sub-accounts should use default data
    #[serde(
        rename = "enableNewSubAccountDefaultData",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub enable_new_sub_account_default_data: Option<bool>,
}

/// `GetCompanyByIdSuccessfulResponseDto` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetCompanyByIdSuccessfulResponseDto {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub company: Option<GetCompanyByIdSchema>,
}

/// `IOnboardingDto` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct IOnboardingDto {
    /// Required by the API.
    /// (Optional here so responses that omit it still parse.)
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub pending: Option<bool>,
    #[serde(
        rename = "haveWebsite",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub have_website: Option<bool>,
    #[serde(
        rename = "websiteUrl",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub website_url: Option<String>,
    #[serde(
        rename = "industryServed",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub industry_served: Option<String>,
    #[serde(
        rename = "customerCount",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub customer_count: Option<String>,
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub tools: Vec<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub location: Option<bool>,
    #[serde(
        rename = "conversationDemo",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub conversation_demo: Option<bool>,
    #[serde(
        rename = "locationId",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub location_id: Option<String>,
    #[serde(
        rename = "snapshotId",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub snapshot_id: Option<String>,
    /// Selected agency plan unique plan Id
    #[serde(rename = "planId", default, skip_serializing_if = "Option::is_none")]
    pub plan_id: Option<String>,
    /// Set to true if it is from affiliate
    #[serde(
        rename = "affiliateSignup",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub affiliate_signup: Option<bool>,
    /// Set to true if user joined onboarding call
    #[serde(
        rename = "hasJoinedKickoffCall",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub has_joined_kickoff_call: Option<bool>,
    /// Set to true if user joined onboarding call
    #[serde(
        rename = "kickoffActionTaken",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub kickoff_action_taken: Option<bool>,
    /// Set to true if user joined implementation call
    #[serde(
        rename = "hasJoinedImplementationCall",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub has_joined_implementation_call: Option<bool>,
    /// This helps in A/B tracking of onboarding flow
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub version: Option<String>,
    /// metaData for onboarding
    #[serde(rename = "metaData", default, skip_serializing_if = "Option::is_none")]
    pub meta_data: Option<serde_json::Value>,
}