ghl-models 0.4.1

Rust data models (DTOs) for the GoHighLevel (HighLevel) API v2 and v3, generated from the official OpenAPI specifications
Documentation
//! `forms` data models for GoHighLevel API V3 (9 types).
//!
//! Generated from HighLevel's official OpenAPI spec for the
//! **Forms** module. Every endpoint that uses these types, with its
//! parameters, required scopes and enum values, is documented in the
//! [`forms` API reference](https://github.com/Shahroz/ghl-rs/blob/main/docs/api/forms.md).
//!
//! Enable with `features = ["forms"]`.
// @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};

/// `ContactSessionIds` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ContactSessionIds {
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub ids: Vec<String>,
}

/// `EventDataSchema` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct EventDataSchema {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub fbc: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub fbp: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub page: Option<PageDetailsSchema>,
    #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
    pub type_: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub domain: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub medium: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub source: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub version: Option<String>,
    #[serde(rename = "adSource", default, skip_serializing_if = "Option::is_none")]
    pub ad_source: Option<String>,
    #[serde(rename = "mediumId", default, skip_serializing_if = "Option::is_none")]
    pub medium_id: Option<String>,
    #[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
    pub parent_id: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub referrer: Option<String>,
    #[serde(rename = "fbEventId", default, skip_serializing_if = "Option::is_none")]
    pub fb_event_id: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub timestamp: Option<f64>,
    #[serde(
        rename = "parentName",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub parent_name: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub fingerprint: Option<String>,
    #[serde(
        rename = "pageVisitType",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub page_visit_type: Option<String>,
    #[serde(
        rename = "contactSessionIds",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub contact_session_ids: Option<ContactSessionIds>,
}

/// `FormsParams` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct FormsParams {
    #[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(
        rename = "locationId",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub location_id: Option<String>,
}

/// `FormsSubmissionsSubmissionsSchema` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct FormsSubmissionsSubmissionsSchema {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
    pub contact_id: Option<String>,
    #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
    pub created_at: Option<String>,
    #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
    pub form_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(default, skip_serializing_if = "Option::is_none")]
    pub others: Option<OthersSchema>,
}

/// `FormsSubmissionsSuccessfulResponseDto` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct FormsSubmissionsSuccessfulResponseDto {
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub submissions: Vec<FormsSubmissionsSubmissionsSchema>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub meta: Option<MetaSchema>,
}

/// `FormsSuccessfulResponseDto` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct FormsSuccessfulResponseDto {
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub forms: Vec<FormsParams>,
    /// Total number of forms
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub total: Option<f64>,
}

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

/// `metaSchema` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct MetaSchema {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub total: Option<f64>,
    #[serde(
        rename = "currentPage",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub current_page: Option<f64>,
    #[serde(rename = "nextPage", default, skip_serializing_if = "Option::is_none")]
    pub next_page: Option<f64>,
    #[serde(rename = "prevPage", default, skip_serializing_if = "Option::is_none")]
    pub prev_page: Option<f64>,
}

/// `othersSchema` from the GoHighLevel OpenAPI spec.
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct OthersSchema {
    #[serde(
        rename = "__submissions_other_field__",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub submissions_other_field: Option<String>,
    #[serde(
        rename = "__custom_field_id__",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub custom_field_id: Option<String>,
    #[serde(rename = "eventData", default, skip_serializing_if = "Option::is_none")]
    pub event_data: Option<EventDataSchema>,
    #[serde(
        rename = "fieldsOriSequance",
        default,
        skip_serializing_if = "Vec::is_empty"
    )]
    pub fields_ori_sequance: Vec<String>,
}