#![allow(
missing_docs,
clippy::doc_lazy_continuation,
clippy::doc_overindented_list_items
)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BadRequestDTO {
#[serde(
rename = "statusCode",
default,
skip_serializing_if = "Option::is_none"
)]
pub status_code: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CCRecipientItem {
pub email: String,
pub id: String,
#[serde(rename = "imageUrl")]
pub image_url: String,
#[serde(rename = "contactName")]
pub contact_name: String,
#[serde(rename = "firstName")]
pub first_name: String,
#[serde(rename = "lastName")]
pub last_name: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DiscountDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<f64>,
#[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DocumentDto {
#[serde(
rename = "locationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub location_id: Option<String>,
#[serde(
rename = "documentId",
default,
skip_serializing_if = "Option::is_none"
)]
pub document_id: Option<String>,
#[serde(rename = "_id", 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 = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(rename = "isExpired", default, skip_serializing_if = "Option::is_none")]
pub is_expired: Option<bool>,
#[serde(
rename = "documentRevision",
default,
skip_serializing_if = "Option::is_none"
)]
pub document_revision: Option<f64>,
#[serde(
rename = "fillableFields",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub fillable_fields: Vec<FillableFieldsDTO>,
#[serde(
rename = "grandTotal",
default,
skip_serializing_if = "Option::is_none"
)]
pub grand_total: Option<GrandTotalDto>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locale: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub status: Vec<String>,
#[serde(
rename = "paymentStatus",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub payment_status: Vec<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub recipients: Vec<RecipientItem>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub links: Vec<ProposalEstimateLinksDto>,
#[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 DocumentListResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub documents: Vec<DocumentDto>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<f64>,
#[serde(
rename = "whiteLabelBaseUrl",
default,
skip_serializing_if = "Option::is_none"
)]
pub white_label_base_url: Option<f64>,
#[serde(
rename = "whiteLabelBaseUrlForInvoice",
default,
skip_serializing_if = "Option::is_none"
)]
pub white_label_base_url_for_invoice: Option<f64>,
}
pub type ELEMENTSLOOKUP = String;
pub type EntityReference = String;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct FillableFieldsDTO {
#[serde(rename = "fieldId", default, skip_serializing_if = "Option::is_none")]
pub field_id: Option<String>,
#[serde(
rename = "isRequired",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_required: Option<bool>,
#[serde(
rename = "hasCompleted",
default,
skip_serializing_if = "Option::is_none"
)]
pub has_completed: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub recipient: Option<String>,
#[serde(
rename = "entityType",
default,
skip_serializing_if = "Option::is_none"
)]
pub entity_type: Option<EntityReference>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<ELEMENTSLOOKUP>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GrandTotalDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub amount: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(
rename = "discountPercentage",
default,
skip_serializing_if = "Option::is_none"
)]
pub discount_percentage: Option<f64>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub discounts: Vec<DiscountDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct NotificationSendSettingDto {
#[serde(rename = "templateId")]
pub template_id: String,
pub subject: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct NotificationSenderSettingDto {
#[serde(rename = "fromEmail")]
pub from_email: String,
#[serde(rename = "fromName")]
pub from_name: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct NotificationSettingsDto {
pub receive: NotificationSendSettingDto,
pub sender: NotificationSenderSettingDto,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ProposalEstimateLinksDto {
#[serde(
rename = "referenceId",
default,
skip_serializing_if = "Option::is_none"
)]
pub reference_id: Option<String>,
#[serde(
rename = "documentId",
default,
skip_serializing_if = "Option::is_none"
)]
pub document_id: Option<String>,
#[serde(
rename = "recipientId",
default,
skip_serializing_if = "Option::is_none"
)]
pub recipient_id: Option<String>,
#[serde(
rename = "entityName",
default,
skip_serializing_if = "Option::is_none"
)]
pub entity_name: Option<String>,
#[serde(
rename = "recipientCategory",
default,
skip_serializing_if = "Option::is_none"
)]
pub recipient_category: Option<String>,
#[serde(
rename = "documentRevision",
default,
skip_serializing_if = "Option::is_none"
)]
pub document_revision: Option<f64>,
#[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct RecipientItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "firstName", default, skip_serializing_if = "Option::is_none")]
pub first_name: Option<String>,
#[serde(rename = "lastName", default, skip_serializing_if = "Option::is_none")]
pub last_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(
rename = "phoneNumber",
default,
skip_serializing_if = "Option::is_none"
)]
pub phone_number: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(
rename = "hasCompleted",
default,
skip_serializing_if = "Option::is_none"
)]
pub has_completed: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(rename = "isPrimary", default, skip_serializing_if = "Option::is_none")]
pub is_primary: Option<bool>,
#[serde(
rename = "signingOrder",
default,
skip_serializing_if = "Option::is_none"
)]
pub signing_order: Option<f64>,
#[serde(rename = "imgUrl", default, skip_serializing_if = "Option::is_none")]
pub img_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ip: Option<String>,
#[serde(rename = "userAgent", default, skip_serializing_if = "Option::is_none")]
pub user_agent: Option<String>,
#[serde(
rename = "signedDate",
default,
skip_serializing_if = "Option::is_none"
)]
pub signed_date: Option<String>,
#[serde(
rename = "contactName",
default,
skip_serializing_if = "Option::is_none"
)]
pub contact_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
#[serde(
rename = "entityName",
default,
skip_serializing_if = "Option::is_none"
)]
pub entity_name: Option<String>,
#[serde(
rename = "initialsImgUrl",
default,
skip_serializing_if = "Option::is_none"
)]
pub initials_img_url: Option<String>,
#[serde(
rename = "lastViewedAt",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_viewed_at: Option<String>,
#[serde(rename = "shareLink", default, skip_serializing_if = "Option::is_none")]
pub share_link: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SendDocumentDto {
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "documentId")]
pub document_id: String,
#[serde(
rename = "documentName",
default,
skip_serializing_if = "Option::is_none"
)]
pub document_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub medium: Option<String>,
#[serde(
rename = "ccRecipients",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub cc_recipients: Vec<CCRecipientItem>,
#[serde(
rename = "notificationSettings",
default,
skip_serializing_if = "Option::is_none"
)]
pub notification_settings: Option<NotificationSettingsDto>,
#[serde(rename = "sentBy")]
pub sent_by: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SendDocumentFromPublicApiBodyDto {
#[serde(rename = "templateId")]
pub template_id: String,
#[serde(rename = "userId")]
pub user_id: String,
#[serde(
rename = "sendDocument",
default,
skip_serializing_if = "Option::is_none"
)]
pub send_document: Option<bool>,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "contactId")]
pub contact_id: String,
#[serde(
rename = "opportunityId",
default,
skip_serializing_if = "Option::is_none"
)]
pub opportunity_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SendDocumentResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub links: Vec<ProposalEstimateLinksDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SendTemplateResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub links: Vec<ProposalEstimateLinksDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct TemplateListPaginationResponseDTO {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub data: Vec<TemplateListResponseDTO>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<f64>,
#[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
pub trace_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct TemplateListResponseDTO {
#[serde(rename = "_id", default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<f64>,
#[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 = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
#[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
pub updated_by: Option<String>,
#[serde(
rename = "isPublicDocument",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_public_document: Option<bool>,
#[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 = "id", default, skip_serializing_if = "Option::is_none")]
pub id_alt: Option<String>,
#[serde(
rename = "documentCount",
default,
skip_serializing_if = "Option::is_none"
)]
pub document_count: Option<f64>,
#[serde(
rename = "docFormUrl",
default,
skip_serializing_if = "Option::is_none"
)]
pub doc_form_url: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UnauthorizedDTO {
#[serde(
rename = "statusCode",
default,
skip_serializing_if = "Option::is_none"
)]
pub status_code: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}