#![allow(
missing_docs,
clippy::doc_lazy_continuation,
clippy::doc_overindented_list_items
)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AddMessageAttachmentsDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub attachments: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CallDataDTO {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub to: Option<String>,
#[serde(rename = "from", default, skip_serializing_if = "Option::is_none")]
pub from_: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CancelScheduledResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CompleteFileUploadDto {
#[serde(rename = "uploadId")]
pub upload_id: String,
#[serde(rename = "filePath")]
pub file_path: String,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "conversationId")]
pub conversation_id: String,
pub filename: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CompleteFileUploadResponseDto {
#[serde(
rename = "uploadedFiles",
default,
skip_serializing_if = "Option::is_none"
)]
pub uploaded_files: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ConversationCreateResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(
rename = "dateUpdated",
default,
skip_serializing_if = "Option::is_none"
)]
pub date_updated: Option<String>,
#[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
pub date_added: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[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(
rename = "lastMessageDate",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_message_date: Option<String>,
#[serde(
rename = "assignedTo",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_to: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ConversationDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(
rename = "locationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub location_id: Option<String>,
#[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
pub contact_id: Option<String>,
#[serde(
rename = "assignedTo",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_to: Option<String>,
#[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(
rename = "lastMessageBody",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_message_body: Option<String>,
#[serde(
rename = "lastMessageDate",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_message_date: Option<String>,
#[serde(
rename = "lastMessageType",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_message_type: Option<String>,
#[serde(
rename = "unreadCount",
default,
skip_serializing_if = "Option::is_none"
)]
pub unread_count: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inbox: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub starred: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ConversationSchema {
#[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 = "locationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub location_id: Option<String>,
#[serde(
rename = "lastMessageBody",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_message_body: Option<String>,
#[serde(
rename = "lastMessageType",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_message_type: Option<String>,
#[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
#[serde(
rename = "unreadCount",
default,
skip_serializing_if = "Option::is_none"
)]
pub unread_count: Option<f64>,
#[serde(rename = "fullName", default, skip_serializing_if = "Option::is_none")]
pub full_name: 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 email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateConversationDto {
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "contactId")]
pub contact_id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateConversationSuccessResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conversation: Option<ConversationCreateResponseDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateLiveChatMessageFeedbackResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeleteConversationSuccessfulResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct EmailEventsDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub delivered: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub opened: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub clicked: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replied: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub failed: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub accepted: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rejected: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unsubscribed: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub complained: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stored: Option<i64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ErrorDto {
pub code: String,
#[serde(rename = "type")]
pub type_: String,
pub message: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ExportMessagesResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub messages: Vec<GetMessageResponseDto>,
#[serde(
rename = "nextCursor",
default,
skip_serializing_if = "Option::is_none"
)]
pub next_cursor: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ForwardConfigDto {
#[serde(rename = "isForwarded")]
pub is_forwarded: bool,
#[serde(
rename = "forwardWholeThread",
default,
skip_serializing_if = "Option::is_none"
)]
pub forward_whole_thread: Option<bool>,
#[serde(rename = "messageId", default, skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(
rename = "emailMessageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub email_message_id: Option<String>,
#[serde(
rename = "sourceContactId",
default,
skip_serializing_if = "Option::is_none"
)]
pub source_contact_id: Option<String>,
#[serde(
rename = "sourceConversationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub source_conversation_id: Option<String>,
#[serde(rename = "toEmail", default, skip_serializing_if = "Option::is_none")]
pub to_email: Option<String>,
#[serde(
rename = "recipientContactId",
default,
skip_serializing_if = "Option::is_none"
)]
pub recipient_contact_id: Option<String>,
#[serde(
rename = "recipientConversationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub recipient_conversation_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ForwardResponseDto {
#[serde(
rename = "forwardWholeThread",
default,
skip_serializing_if = "Option::is_none"
)]
pub forward_whole_thread: Option<bool>,
#[serde(rename = "messageId", default, skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(
rename = "emailMessageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub email_message_id: Option<String>,
#[serde(
rename = "sourceContactId",
default,
skip_serializing_if = "Option::is_none"
)]
pub source_contact_id: Option<String>,
#[serde(
rename = "sourceConversationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub source_conversation_id: Option<String>,
#[serde(
rename = "forwardToEmail",
default,
skip_serializing_if = "Option::is_none"
)]
pub forward_to_email: Option<String>,
#[serde(
rename = "recipientContactId",
default,
skip_serializing_if = "Option::is_none"
)]
pub recipient_contact_id: Option<String>,
#[serde(
rename = "recipientConversationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub recipient_conversation_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetConversationByIdResponse {
#[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 deleted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inbox: Option<bool>,
#[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<f64>,
#[serde(
rename = "unreadCount",
default,
skip_serializing_if = "Option::is_none"
)]
pub unread_count: Option<f64>,
#[serde(
rename = "assignedTo",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_to: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub starred: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetConversationSuccessfulResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conversation: Option<ConversationDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetEmailMessageResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "altId", default, skip_serializing_if = "Option::is_none")]
pub alt_id: Option<String>,
#[serde(rename = "threadId", default, skip_serializing_if = "Option::is_none")]
pub thread_id: Option<String>,
#[serde(
rename = "locationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub location_id: Option<String>,
#[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
pub contact_id: Option<String>,
#[serde(
rename = "conversationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub conversation_id: Option<String>,
#[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
pub date_added: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direction: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(
rename = "contentType",
default,
skip_serializing_if = "Option::is_none"
)]
pub content_type: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub attachments: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provider: Option<String>,
#[serde(rename = "from", default, skip_serializing_if = "Option::is_none")]
pub from_: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub to: Vec<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub cc: Vec<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub bcc: Vec<String>,
#[serde(
rename = "replyToMessageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub reply_to_message_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
#[serde(
rename = "conversationProviderId",
default,
skip_serializing_if = "Option::is_none"
)]
pub conversation_provider_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetMessageResponseDto {
#[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<f64>,
#[serde(
rename = "messageType",
default,
skip_serializing_if = "Option::is_none"
)]
pub message_type: Option<String>,
#[serde(
rename = "locationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub location_id: Option<String>,
#[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
pub contact_id: Option<String>,
#[serde(
rename = "conversationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub conversation_id: Option<String>,
#[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
pub date_added: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direction: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(
rename = "contentType",
default,
skip_serializing_if = "Option::is_none"
)]
pub content_type: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub attachments: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub meta: Option<MessageMeta>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
#[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(
rename = "conversationProviderId",
default,
skip_serializing_if = "Option::is_none"
)]
pub conversation_provider_id: Option<String>,
#[serde(
rename = "chatWidgetId",
default,
skip_serializing_if = "Option::is_none"
)]
pub chat_widget_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetMessageTranscriptionResponseDto {
#[serde(
rename = "mediaChannel",
default,
skip_serializing_if = "Option::is_none"
)]
pub media_channel: Option<f64>,
#[serde(
rename = "sentenceIndex",
default,
skip_serializing_if = "Option::is_none"
)]
pub sentence_index: Option<f64>,
#[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<f64>,
#[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub transcript: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub confidence: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetMessagesByConversationResponseDto {
#[serde(
rename = "lastMessageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub last_message_id: Option<String>,
#[serde(rename = "nextPage", default, skip_serializing_if = "Option::is_none")]
pub next_page: Option<bool>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub messages: Vec<GetMessageResponseDto>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct InitiateFileUploadDto {
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "conversationId")]
pub conversation_id: String,
pub filename: String,
#[serde(rename = "contentType")]
pub content_type: String,
#[serde(rename = "fileSize", default, skip_serializing_if = "Option::is_none")]
pub file_size: Option<f64>,
pub channel: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct InitiateFileUploadResponseDto {
#[serde(rename = "uploadUrl", default, skip_serializing_if = "Option::is_none")]
pub upload_url: Option<String>,
#[serde(rename = "uploadId", default, skip_serializing_if = "Option::is_none")]
pub upload_id: Option<String>,
#[serde(rename = "filePath", default, skip_serializing_if = "Option::is_none")]
pub file_path: Option<String>,
#[serde(rename = "expiresAt", default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<f64>,
#[serde(
rename = "maxFileSize",
default,
skip_serializing_if = "Option::is_none"
)]
pub max_file_size: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct MessageMeta {
#[serde(
rename = "callDuration",
default,
skip_serializing_if = "Option::is_none"
)]
pub call_duration: Option<String>,
#[serde(
rename = "callStatus",
default,
skip_serializing_if = "Option::is_none"
)]
pub call_status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ProcessMessageBodyDto {
#[serde(rename = "type")]
pub type_: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub attachments: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(rename = "conversationId")]
pub conversation_id: String,
#[serde(rename = "contactId")]
pub contact_id: String,
#[serde(rename = "conversationProviderId")]
pub conversation_provider_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub html: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(rename = "emailFrom", default, skip_serializing_if = "Option::is_none")]
pub email_from: Option<String>,
#[serde(rename = "emailTo", default, skip_serializing_if = "Option::is_none")]
pub email_to: Option<String>,
#[serde(rename = "emailCc", default, skip_serializing_if = "Vec::is_empty")]
pub email_cc: Vec<String>,
#[serde(rename = "emailBcc", default, skip_serializing_if = "Vec::is_empty")]
pub email_bcc: Vec<String>,
#[serde(
rename = "emailMessageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub email_message_id: Option<String>,
#[serde(rename = "altId", default, skip_serializing_if = "Option::is_none")]
pub alt_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direction: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub call: Option<CallDataDTO>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ProcessMessageResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(
rename = "conversationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub conversation_id: Option<String>,
#[serde(rename = "messageId", default, skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
pub contact_id: Option<String>,
#[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
pub date_added: Option<String>,
#[serde(
rename = "emailMessageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub email_message_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ProcessOutboundMessageBodyDto {
#[serde(rename = "type")]
pub type_: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub attachments: Vec<String>,
#[serde(rename = "conversationId")]
pub conversation_id: String,
#[serde(rename = "conversationProviderId")]
pub conversation_provider_id: String,
#[serde(rename = "altId", default, skip_serializing_if = "Option::is_none")]
pub alt_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub call: Option<CallDataDTO>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SendConversationResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub conversations: Vec<ConversationSchema>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SendMessageBodyDto {
#[serde(rename = "type")]
pub type_: String,
#[serde(rename = "subType")]
pub sub_type: serde_json::Value,
#[serde(rename = "contactId")]
pub contact_id: String,
#[serde(
rename = "appointmentId",
default,
skip_serializing_if = "Option::is_none"
)]
pub appointment_id: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub attachments: Vec<String>,
#[serde(rename = "emailFrom", default, skip_serializing_if = "Option::is_none")]
pub email_from: Option<String>,
#[serde(rename = "emailCc", default, skip_serializing_if = "Vec::is_empty")]
pub email_cc: Vec<String>,
#[serde(rename = "emailBcc", default, skip_serializing_if = "Vec::is_empty")]
pub email_bcc: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub html: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(
rename = "replyMessageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub reply_message_id: Option<String>,
#[serde(
rename = "templateId",
default,
skip_serializing_if = "Option::is_none"
)]
pub template_id: Option<String>,
#[serde(rename = "threadId", default, skip_serializing_if = "Option::is_none")]
pub thread_id: Option<String>,
#[serde(
rename = "scheduledTimestamp",
default,
skip_serializing_if = "Option::is_none"
)]
pub scheduled_timestamp: Option<f64>,
#[serde(
rename = "conversationProviderId",
default,
skip_serializing_if = "Option::is_none"
)]
pub conversation_provider_id: Option<String>,
#[serde(rename = "emailTo", default, skip_serializing_if = "Option::is_none")]
pub email_to: Option<String>,
#[serde(
rename = "customSubtypeId",
default,
skip_serializing_if = "Option::is_none"
)]
pub custom_subtype_id: Option<String>,
#[serde(
rename = "emailReplyMode",
default,
skip_serializing_if = "Option::is_none"
)]
pub email_reply_mode: Option<String>,
#[serde(
rename = "fromNumber",
default,
skip_serializing_if = "Option::is_none"
)]
pub from_number: Option<String>,
#[serde(rename = "toNumber", default, skip_serializing_if = "Option::is_none")]
pub to_number: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub forward: Option<ForwardConfigDto>,
pub status: String,
#[serde(
rename = "usesNativeSchedulingAi",
default,
skip_serializing_if = "Option::is_none"
)]
pub uses_native_scheduling_ai: Option<bool>,
#[serde(
rename = "optimizationPeriod",
default,
skip_serializing_if = "Option::is_none"
)]
pub optimization_period: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SendMessageResponseDto {
#[serde(
rename = "conversationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub conversation_id: Option<String>,
#[serde(
rename = "emailMessageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub email_message_id: Option<String>,
#[serde(rename = "messageId", default, skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(rename = "messageIds", default, skip_serializing_if = "Vec::is_empty")]
pub message_ids: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub msg: Option<String>,
#[serde(
rename = "forwardData",
default,
skip_serializing_if = "Option::is_none"
)]
pub forward_data: Option<ForwardResponseDto>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SendReviewReplyDto {
#[serde(rename = "conversationId")]
pub conversation_id: String,
#[serde(rename = "locationId")]
pub location_id: String,
pub message: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct StartAfterArrayNumberSchema {
#[serde(
rename = "startAfterDate",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub start_after_date: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct StartAfterNumberSchema {
#[serde(
rename = "startAfterDate",
default,
skip_serializing_if = "Option::is_none"
)]
pub start_after_date: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateConversationDto {
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(
rename = "unreadCount",
default,
skip_serializing_if = "Option::is_none"
)]
pub unread_count: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub starred: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub feedback: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateEmailMessageStatusDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub events: Option<EmailEventsDto>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub recipients: Vec<UpdateRecipientMessageStatusDto>,
pub status: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateEmailMessageStatusResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateMessageStatusDto {
pub status: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<ErrorDto>,
#[serde(
rename = "emailMessageId",
default,
skip_serializing_if = "Option::is_none"
)]
pub email_message_id: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub recipients: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateRecipientMessageStatusDto {
#[serde(rename = "emailId")]
pub email_id: String,
pub status: String,
#[serde(
rename = "failReason",
default,
skip_serializing_if = "Option::is_none"
)]
pub fail_reason: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UploadFilesDto {
#[serde(rename = "conversationId")]
pub conversation_id: String,
#[serde(rename = "contactId")]
pub contact_id: String,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(
rename = "attachmentUrls",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub attachment_urls: Vec<String>,
#[serde(
rename = "chatServiceSid",
default,
skip_serializing_if = "Option::is_none"
)]
pub chat_service_sid: Option<String>,
#[serde(
rename = "isGroupSms",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_group_sms: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UploadFilesErrorResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UploadFilesResponseDto {
#[serde(
rename = "uploadedFiles",
default,
skip_serializing_if = "Option::is_none"
)]
pub uploaded_files: Option<serde_json::Value>,
#[serde(
rename = "twilioMediaSids",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub twilio_media_sids: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UserTypingBody {
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "isTyping")]
pub is_typing: String,
#[serde(rename = "visitorId")]
pub visitor_id: String,
#[serde(rename = "conversationId")]
pub conversation_id: String,
}