#![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 {
pub id: String,
pub value: f64,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DocumentDto {
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "documentId")]
pub document_id: String,
#[serde(rename = "_id")]
pub id: String,
pub name: String,
#[serde(rename = "type")]
pub type_: String,
pub deleted: bool,
#[serde(rename = "isExpired")]
pub is_expired: bool,
#[serde(rename = "documentRevision")]
pub document_revision: f64,
#[serde(
rename = "fillableFields",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub fillable_fields: Vec<FillableFieldsDTO>,
#[serde(rename = "grandTotal")]
pub grand_total: GrandTotalDto,
pub locale: 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")]
pub updated_at: String,
#[serde(rename = "createdAt")]
pub created_at: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DocumentListResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub documents: Vec<DocumentDto>,
pub total: 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")]
pub field_id: String,
#[serde(rename = "isRequired")]
pub is_required: bool,
#[serde(rename = "hasCompleted")]
pub has_completed: bool,
pub recipient: String,
#[serde(rename = "entityType")]
pub entity_type: EntityReference,
pub id: String,
#[serde(rename = "type")]
pub type_: ELEMENTSLOOKUP,
pub value: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GrandTotalDto {
pub amount: f64,
pub currency: String,
#[serde(rename = "discountPercentage")]
pub discount_percentage: 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")]
pub reference_id: String,
#[serde(rename = "documentId")]
pub document_id: String,
#[serde(rename = "recipientId")]
pub recipient_id: String,
#[serde(rename = "entityName")]
pub entity_name: String,
#[serde(rename = "recipientCategory")]
pub recipient_category: String,
#[serde(rename = "documentRevision")]
pub document_revision: f64,
#[serde(rename = "createdBy")]
pub created_by: String,
pub deleted: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct RecipientItem {
pub id: 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>,
pub email: 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")]
pub has_completed: bool,
pub role: String,
#[serde(rename = "isPrimary")]
pub is_primary: bool,
#[serde(rename = "signingOrder")]
pub signing_order: 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 {
pub success: bool,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub links: Vec<ProposalEstimateLinksDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SendTemplateResponseDto {
pub success: 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>,
pub total: 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")]
pub id: String,
pub deleted: bool,
pub version: f64,
pub name: String,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(rename = "updatedBy")]
pub updated_by: String,
#[serde(rename = "isPublicDocument")]
pub is_public_document: bool,
#[serde(rename = "createdAt")]
pub created_at: String,
#[serde(rename = "updatedAt")]
pub updated_at: String,
#[serde(rename = "id")]
pub id_alt: 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>,
}