#![allow(
missing_docs,
clippy::doc_lazy_continuation,
clippy::doc_overindented_list_items
)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AdditionalDetailsDTO {
pub notes: bool,
pub tasks: bool,
#[serde(rename = "calendarEvents")]
pub calendar_events: bool,
#[serde(rename = "unReadConversations")]
pub un_read_conversations: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateAddFollowersSuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub followers: Vec<String>,
#[serde(
rename = "followersAdded",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub followers_added: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateDto {
#[serde(rename = "pipelineId")]
pub pipeline_id: String,
#[serde(rename = "locationId")]
pub location_id: String,
pub name: String,
#[serde(
rename = "pipelineStageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub pipeline_stage_id: Option<String>,
pub status: String,
#[serde(rename = "contactId")]
pub contact_id: String,
#[serde(
rename = "monetaryValue",
default,
skip_serializing_if = "Option::is_none"
)]
pub monetary_value: Option<f64>,
#[serde(
rename = "assignedTo",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_to: Option<String>,
#[serde(
rename = "customFields",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub custom_fields: Vec<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CustomFieldResponseSchema {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(
rename = "fieldValue",
default,
skip_serializing_if = "Option::is_none"
)]
pub field_value: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeleteFollowersSuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub followers: Vec<String>,
#[serde(
rename = "followersRemoved",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub followers_removed: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeleteUpdateOpportunitySuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub succeded: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct FollowersDTO {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub followers: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetPipelinesSuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub pipelines: Vec<PipelinesResponseSchema>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetPostOpportunitySuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub opportunity: Option<SearchOpportunitiesResponseSchema>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LostReasonResponseSchema {
#[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>,
#[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
#[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LostReasonsResponseSchema {
#[serde(rename = "lostReasons", default, skip_serializing_if = "Vec::is_empty")]
pub lost_reasons: Vec<LostReasonResponseSchema>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct OpportunitySearchBodyDTO {
#[serde(rename = "locationId")]
pub location_id: String,
pub query: String,
pub limit: f64,
pub page: f64,
#[serde(rename = "searchAfter", default, skip_serializing_if = "Vec::is_empty")]
pub search_after: Vec<String>,
#[serde(rename = "additionalDetails")]
pub additional_details: AdditionalDetailsDTO,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct PipelinesResponseSchema {
#[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 = "Vec::is_empty")]
pub stages: Vec<Vec<serde_json::Value>>,
#[serde(
rename = "showInFunnel",
default,
skip_serializing_if = "Option::is_none"
)]
pub show_in_funnel: Option<bool>,
#[serde(
rename = "showInPieChart",
default,
skip_serializing_if = "Option::is_none"
)]
pub show_in_pie_chart: Option<bool>,
#[serde(
rename = "locationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub location_id: Option<String>,
#[serde(
rename = "colorRenderMode",
default,
skip_serializing_if = "Option::is_none"
)]
pub color_render_mode: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct PostSearchSuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub opportunities: Vec<SearchOpportunitiesResponseSchema>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub aggregations: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SearchMetaResponseSchema {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<f64>,
#[serde(
rename = "nextPageUrl",
default,
skip_serializing_if = "Option::is_none"
)]
pub next_page_url: Option<String>,
#[serde(
rename = "startAfterId",
default,
skip_serializing_if = "Option::is_none"
)]
pub start_after_id: Option<String>,
#[serde(
rename = "startAfter",
default,
skip_serializing_if = "Option::is_none"
)]
pub start_after: 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>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SearchOpportunitiesContactResponseSchema {
#[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 = "companyName",
default,
skip_serializing_if = "Option::is_none"
)]
pub company_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub tags: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SearchOpportunitiesResponseSchema {
#[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 = "monetaryValue",
default,
skip_serializing_if = "Option::is_none"
)]
pub monetary_value: Option<f64>,
#[serde(
rename = "pipelineId",
default,
skip_serializing_if = "Option::is_none"
)]
pub pipeline_id: Option<String>,
#[serde(
rename = "pipelineStageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub pipeline_stage_id: Option<String>,
#[serde(
rename = "assignedTo",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_to: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
#[serde(
rename = "lastStatusChangeAt",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_status_change_at: Option<String>,
#[serde(
rename = "lastStageChangeAt",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_stage_change_at: Option<String>,
#[serde(
rename = "lastActionDate",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_action_date: Option<String>,
#[serde(
rename = "indexVersion",
default,
skip_serializing_if = "Option::is_none"
)]
pub index_version: Option<String>,
#[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
#[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
pub contact_id: Option<String>,
#[serde(
rename = "locationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub location_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contact: Option<SearchOpportunitiesContactResponseSchema>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub notes: Vec<Vec<serde_json::Value>>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub tasks: Vec<Vec<serde_json::Value>>,
#[serde(
rename = "calendarEvents",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub calendar_events: Vec<Vec<serde_json::Value>>,
#[serde(
rename = "lostReasonId",
default,
skip_serializing_if = "Option::is_none"
)]
pub lost_reason_id: Option<String>,
#[serde(
rename = "customFields",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub custom_fields: Vec<CustomFieldResponseSchema>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub followers: Vec<Vec<serde_json::Value>>,
#[serde(
rename = "externalObjectId",
default,
skip_serializing_if = "Option::is_none"
)]
pub external_object_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SearchSuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub opportunities: Vec<SearchOpportunitiesResponseSchema>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub meta: Option<SearchMetaResponseSchema>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub aggregations: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateOpportunityDto {
#[serde(
rename = "pipelineId",
default,
skip_serializing_if = "Option::is_none"
)]
pub pipeline_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(
rename = "pipelineStageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub pipeline_stage_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(
rename = "monetaryValue",
default,
skip_serializing_if = "Option::is_none"
)]
pub monetary_value: Option<f64>,
#[serde(
rename = "assignedTo",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_to: Option<String>,
#[serde(
rename = "customFields",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub custom_fields: Vec<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateStatusDto {
pub status: String,
#[serde(
rename = "lostReasonId",
default,
skip_serializing_if = "Option::is_none"
)]
pub lost_reason_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpsertOpportunityDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "pipelineId")]
pub pipeline_id: String,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub followers: Vec<String>,
#[serde(rename = "isRemoveAllFollowers")]
pub is_remove_all_followers: bool,
#[serde(rename = "followersActionType")]
pub followers_action_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(
rename = "pipelineStageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub pipeline_stage_id: Option<String>,
#[serde(
rename = "monetaryValue",
default,
skip_serializing_if = "Option::is_none"
)]
pub monetary_value: Option<serde_json::Value>,
#[serde(
rename = "assignedTo",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_to: Option<String>,
#[serde(
rename = "lostReasonId",
default,
skip_serializing_if = "Option::is_none"
)]
pub lost_reason_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpsertOpportunitySuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub opportunity: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub new: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CustomFieldsInputArraySchema {
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub field_value: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CustomFieldsInputObjectSchema {
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field_value: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CustomFieldsInputStringSchema {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field_value: Option<String>,
}