1#![allow(
14 missing_docs,
15 clippy::doc_lazy_continuation,
16 clippy::doc_overindented_list_items
17)]
18
19use serde::{Deserialize, Serialize};
20
21#[derive(Debug, Clone, Default, Serialize, Deserialize)]
23pub struct AddMessageAttachmentsDto {
24 #[serde(default, skip_serializing_if = "Vec::is_empty")]
27 pub attachments: Vec<String>,
28}
29
30#[derive(Debug, Clone, Default, Serialize, Deserialize)]
32pub struct CallDataDTO {
33 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub to: Option<String>,
36 #[serde(rename = "from", default, skip_serializing_if = "Option::is_none")]
38 pub from_: Option<String>,
39 #[serde(default, skip_serializing_if = "Option::is_none")]
43 pub status: Option<String>,
44}
45
46#[derive(Debug, Clone, Default, Serialize, Deserialize)]
48pub struct CancelScheduledResponseDto {
49 #[serde(default, skip_serializing_if = "Option::is_none")]
53 pub status: Option<f64>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
58 pub message: Option<String>,
59}
60
61#[derive(Debug, Clone, Default, Serialize, Deserialize)]
63pub struct CompleteFileUploadDto {
64 #[serde(rename = "uploadId")]
67 pub upload_id: String,
68 #[serde(rename = "filePath")]
71 pub file_path: String,
72 #[serde(rename = "locationId")]
75 pub location_id: String,
76 #[serde(rename = "conversationId")]
79 pub conversation_id: String,
80 pub filename: String,
83}
84
85#[derive(Debug, Clone, Default, Serialize, Deserialize)]
87pub struct CompleteFileUploadResponseDto {
88 #[serde(
92 rename = "uploadedFiles",
93 default,
94 skip_serializing_if = "Option::is_none"
95 )]
96 pub uploaded_files: Option<serde_json::Value>,
97 #[serde(default, skip_serializing_if = "Option::is_none")]
101 pub metadata: Option<serde_json::Value>,
102}
103
104#[derive(Debug, Clone, Default, Serialize, Deserialize)]
106pub struct ConversationCreateResponseDto {
107 #[serde(default, skip_serializing_if = "Option::is_none")]
111 pub id: Option<String>,
112 #[serde(
116 rename = "dateUpdated",
117 default,
118 skip_serializing_if = "Option::is_none"
119 )]
120 pub date_updated: Option<String>,
121 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
125 pub date_added: Option<String>,
126 #[serde(default, skip_serializing_if = "Option::is_none")]
130 pub deleted: Option<bool>,
131 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
135 pub contact_id: Option<String>,
136 #[serde(
140 rename = "locationId",
141 default,
142 skip_serializing_if = "Option::is_none"
143 )]
144 pub location_id: Option<String>,
145 #[serde(
149 rename = "lastMessageDate",
150 default,
151 skip_serializing_if = "Option::is_none"
152 )]
153 pub last_message_date: Option<String>,
154 #[serde(
156 rename = "assignedTo",
157 default,
158 skip_serializing_if = "Option::is_none"
159 )]
160 pub assigned_to: Option<String>,
161}
162
163#[derive(Debug, Clone, Default, Serialize, Deserialize)]
165pub struct ConversationDto {
166 #[serde(default, skip_serializing_if = "Option::is_none")]
168 pub id: Option<String>,
169 #[serde(
173 rename = "locationId",
174 default,
175 skip_serializing_if = "Option::is_none"
176 )]
177 pub location_id: Option<String>,
178 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
182 pub contact_id: Option<String>,
183 #[serde(
185 rename = "assignedTo",
186 default,
187 skip_serializing_if = "Option::is_none"
188 )]
189 pub assigned_to: Option<String>,
190 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
192 pub user_id: Option<String>,
193 #[serde(
195 rename = "lastMessageBody",
196 default,
197 skip_serializing_if = "Option::is_none"
198 )]
199 pub last_message_body: Option<String>,
200 #[serde(
202 rename = "lastMessageDate",
203 default,
204 skip_serializing_if = "Option::is_none"
205 )]
206 pub last_message_date: Option<String>,
207 #[serde(
213 rename = "lastMessageType",
214 default,
215 skip_serializing_if = "Option::is_none"
216 )]
217 pub last_message_type: Option<String>,
218 #[serde(
220 rename = "unreadCount",
221 default,
222 skip_serializing_if = "Option::is_none"
223 )]
224 pub unread_count: Option<f64>,
225 #[serde(default, skip_serializing_if = "Option::is_none")]
227 pub inbox: Option<bool>,
228 #[serde(default, skip_serializing_if = "Option::is_none")]
230 pub starred: Option<bool>,
231 #[serde(default, skip_serializing_if = "Option::is_none")]
235 pub deleted: Option<bool>,
236}
237
238#[derive(Debug, Clone, Default, Serialize, Deserialize)]
240pub struct ConversationSchema {
241 #[serde(default, skip_serializing_if = "Option::is_none")]
245 pub id: Option<String>,
246 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
250 pub contact_id: Option<String>,
251 #[serde(
255 rename = "locationId",
256 default,
257 skip_serializing_if = "Option::is_none"
258 )]
259 pub location_id: Option<String>,
260 #[serde(
264 rename = "lastMessageBody",
265 default,
266 skip_serializing_if = "Option::is_none"
267 )]
268 pub last_message_body: Option<String>,
269 #[serde(
277 rename = "lastMessageType",
278 default,
279 skip_serializing_if = "Option::is_none"
280 )]
281 pub last_message_type: Option<String>,
282 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
288 pub type_: Option<String>,
289 #[serde(
293 rename = "unreadCount",
294 default,
295 skip_serializing_if = "Option::is_none"
296 )]
297 pub unread_count: Option<f64>,
298 #[serde(rename = "fullName", default, skip_serializing_if = "Option::is_none")]
302 pub full_name: Option<String>,
303 #[serde(
307 rename = "contactName",
308 default,
309 skip_serializing_if = "Option::is_none"
310 )]
311 pub contact_name: Option<String>,
312 #[serde(default, skip_serializing_if = "Option::is_none")]
316 pub email: Option<String>,
317 #[serde(default, skip_serializing_if = "Option::is_none")]
321 pub phone: Option<String>,
322}
323
324#[derive(Debug, Clone, Default, Serialize, Deserialize)]
326pub struct CreateConversationDto {
327 #[serde(rename = "locationId")]
330 pub location_id: String,
331 #[serde(rename = "contactId")]
334 pub contact_id: String,
335}
336
337#[derive(Debug, Clone, Default, Serialize, Deserialize)]
339pub struct CreateConversationSuccessResponse {
340 #[serde(default, skip_serializing_if = "Option::is_none")]
344 pub success: Option<bool>,
345 #[serde(default, skip_serializing_if = "Option::is_none")]
349 pub conversation: Option<ConversationCreateResponseDto>,
350}
351
352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
354pub struct CreateCustomSubtypeDto {
355 pub name: String,
358 #[serde(default, skip_serializing_if = "Option::is_none")]
360 pub description: Option<String>,
361 pub channel: String,
365 pub language: String,
368}
369
370#[derive(Debug, Clone, Default, Serialize, Deserialize)]
372pub struct CreateLiveChatMessageFeedbackResponse {
373 #[serde(default, skip_serializing_if = "Option::is_none")]
376 pub success: Option<bool>,
377}
378
379#[derive(Debug, Clone, Default, Serialize, Deserialize)]
381pub struct DeleteConversationSuccessfulResponse {
382 #[serde(default, skip_serializing_if = "Option::is_none")]
386 pub success: Option<bool>,
387}
388
389#[derive(Debug, Clone, Default, Serialize, Deserialize)]
391pub struct ErrorDto {
392 pub code: String,
395 #[serde(rename = "type")]
398 pub type_: String,
399 pub message: String,
402}
403
404#[derive(Debug, Clone, Default, Serialize, Deserialize)]
406pub struct ExportMessagesResponseDto {
407 #[serde(default, skip_serializing_if = "Vec::is_empty")]
411 pub messages: Vec<GetMessageResponseDto>,
412 #[serde(
414 rename = "nextCursor",
415 default,
416 skip_serializing_if = "Option::is_none"
417 )]
418 pub next_cursor: Option<String>,
419 #[serde(default, skip_serializing_if = "Option::is_none")]
423 pub total: Option<f64>,
424}
425
426#[derive(Debug, Clone, Default, Serialize, Deserialize)]
428pub struct ForwardConfigDto {
429 #[serde(rename = "isForwarded")]
432 pub is_forwarded: bool,
433 #[serde(
435 rename = "forwardWholeThread",
436 default,
437 skip_serializing_if = "Option::is_none"
438 )]
439 pub forward_whole_thread: Option<bool>,
440 #[serde(rename = "messageId", default, skip_serializing_if = "Option::is_none")]
442 pub message_id: Option<String>,
443 #[serde(
446 rename = "emailMessageId",
447 default,
448 skip_serializing_if = "Option::is_none"
449 )]
450 pub email_message_id: Option<String>,
451 #[serde(
454 rename = "sourceContactId",
455 default,
456 skip_serializing_if = "Option::is_none"
457 )]
458 pub source_contact_id: Option<String>,
459 #[serde(
462 rename = "sourceConversationId",
463 default,
464 skip_serializing_if = "Option::is_none"
465 )]
466 pub source_conversation_id: Option<String>,
467 #[serde(rename = "toEmail", default, skip_serializing_if = "Option::is_none")]
469 pub to_email: Option<String>,
470 #[serde(
472 rename = "recipientContactId",
473 default,
474 skip_serializing_if = "Option::is_none"
475 )]
476 pub recipient_contact_id: Option<String>,
477 #[serde(
479 rename = "recipientConversationId",
480 default,
481 skip_serializing_if = "Option::is_none"
482 )]
483 pub recipient_conversation_id: Option<String>,
484}
485
486#[derive(Debug, Clone, Default, Serialize, Deserialize)]
488pub struct ForwardResponseDto {
489 #[serde(
491 rename = "forwardWholeThread",
492 default,
493 skip_serializing_if = "Option::is_none"
494 )]
495 pub forward_whole_thread: Option<bool>,
496 #[serde(rename = "messageId", default, skip_serializing_if = "Option::is_none")]
498 pub message_id: Option<String>,
499 #[serde(
501 rename = "emailMessageId",
502 default,
503 skip_serializing_if = "Option::is_none"
504 )]
505 pub email_message_id: Option<String>,
506 #[serde(
508 rename = "sourceContactId",
509 default,
510 skip_serializing_if = "Option::is_none"
511 )]
512 pub source_contact_id: Option<String>,
513 #[serde(
515 rename = "sourceConversationId",
516 default,
517 skip_serializing_if = "Option::is_none"
518 )]
519 pub source_conversation_id: Option<String>,
520 #[serde(
522 rename = "forwardToEmail",
523 default,
524 skip_serializing_if = "Option::is_none"
525 )]
526 pub forward_to_email: Option<String>,
527 #[serde(
529 rename = "recipientContactId",
530 default,
531 skip_serializing_if = "Option::is_none"
532 )]
533 pub recipient_contact_id: Option<String>,
534 #[serde(
536 rename = "recipientConversationId",
537 default,
538 skip_serializing_if = "Option::is_none"
539 )]
540 pub recipient_conversation_id: Option<String>,
541}
542
543#[derive(Debug, Clone, Default, Serialize, Deserialize)]
545pub struct GetConversationByIdResponse {
546 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
550 pub contact_id: Option<String>,
551 #[serde(
555 rename = "locationId",
556 default,
557 skip_serializing_if = "Option::is_none"
558 )]
559 pub location_id: Option<String>,
560 #[serde(default, skip_serializing_if = "Option::is_none")]
564 pub deleted: Option<bool>,
565 #[serde(default, skip_serializing_if = "Option::is_none")]
569 pub inbox: Option<bool>,
570 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
575 pub type_: Option<f64>,
576 #[serde(
580 rename = "unreadCount",
581 default,
582 skip_serializing_if = "Option::is_none"
583 )]
584 pub unread_count: Option<f64>,
585 #[serde(
588 rename = "assignedTo",
589 default,
590 skip_serializing_if = "Option::is_none"
591 )]
592 pub assigned_to: Option<String>,
593 #[serde(default, skip_serializing_if = "Option::is_none")]
597 pub id: Option<String>,
598 #[serde(default, skip_serializing_if = "Option::is_none")]
600 pub starred: Option<bool>,
601}
602
603#[derive(Debug, Clone, Default, Serialize, Deserialize)]
605pub struct GetConversationSuccessfulResponse {
606 #[serde(default, skip_serializing_if = "Option::is_none")]
610 pub success: Option<bool>,
611 #[serde(default, skip_serializing_if = "Option::is_none")]
615 pub conversation: Option<ConversationDto>,
616}
617
618#[derive(Debug, Clone, Default, Serialize, Deserialize)]
620pub struct GetEmailMessageResponseDto {
621 #[serde(default, skip_serializing_if = "Option::is_none")]
624 pub id: Option<String>,
625 #[serde(rename = "altId", default, skip_serializing_if = "Option::is_none")]
627 pub alt_id: Option<String>,
628 #[serde(rename = "threadId", default, skip_serializing_if = "Option::is_none")]
632 pub thread_id: Option<String>,
633 #[serde(
636 rename = "locationId",
637 default,
638 skip_serializing_if = "Option::is_none"
639 )]
640 pub location_id: Option<String>,
641 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
644 pub contact_id: Option<String>,
645 #[serde(
648 rename = "conversationId",
649 default,
650 skip_serializing_if = "Option::is_none"
651 )]
652 pub conversation_id: Option<String>,
653 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
656 pub date_added: Option<String>,
657 #[serde(default, skip_serializing_if = "Option::is_none")]
658 pub subject: Option<String>,
659 #[serde(default, skip_serializing_if = "Option::is_none")]
662 pub body: Option<String>,
663 #[serde(default, skip_serializing_if = "Option::is_none")]
667 pub direction: Option<String>,
668 #[serde(default, skip_serializing_if = "Option::is_none")]
671 pub status: Option<String>,
672 #[serde(
675 rename = "contentType",
676 default,
677 skip_serializing_if = "Option::is_none"
678 )]
679 pub content_type: Option<String>,
680 #[serde(default, skip_serializing_if = "Vec::is_empty")]
682 pub attachments: Vec<String>,
683 #[serde(default, skip_serializing_if = "Option::is_none")]
684 pub provider: Option<String>,
685 #[serde(rename = "from", default, skip_serializing_if = "Option::is_none")]
689 pub from_: Option<String>,
690 #[serde(default, skip_serializing_if = "Vec::is_empty")]
694 pub to: Vec<String>,
695 #[serde(default, skip_serializing_if = "Vec::is_empty")]
697 pub cc: Vec<String>,
698 #[serde(default, skip_serializing_if = "Vec::is_empty")]
700 pub bcc: Vec<String>,
701 #[serde(
703 rename = "replyToMessageId",
704 default,
705 skip_serializing_if = "Option::is_none"
706 )]
707 pub reply_to_message_id: Option<String>,
708 #[serde(default, skip_serializing_if = "Option::is_none")]
711 pub source: Option<String>,
712 #[serde(
714 rename = "conversationProviderId",
715 default,
716 skip_serializing_if = "Option::is_none"
717 )]
718 pub conversation_provider_id: Option<String>,
719}
720
721#[derive(Debug, Clone, Default, Serialize, Deserialize)]
723pub struct GetMessageResponseDto {
724 #[serde(default, skip_serializing_if = "Option::is_none")]
727 pub id: Option<String>,
728 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
731 pub type_: Option<f64>,
732 #[serde(
740 rename = "messageType",
741 default,
742 skip_serializing_if = "Option::is_none"
743 )]
744 pub message_type: Option<String>,
745 #[serde(
748 rename = "locationId",
749 default,
750 skip_serializing_if = "Option::is_none"
751 )]
752 pub location_id: Option<String>,
753 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
756 pub contact_id: Option<String>,
757 #[serde(
760 rename = "conversationId",
761 default,
762 skip_serializing_if = "Option::is_none"
763 )]
764 pub conversation_id: Option<String>,
765 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
768 pub date_added: Option<String>,
769 #[serde(default, skip_serializing_if = "Option::is_none")]
770 pub body: Option<String>,
771 #[serde(default, skip_serializing_if = "Option::is_none")]
775 pub direction: Option<String>,
776 #[serde(default, skip_serializing_if = "Option::is_none")]
779 pub status: Option<String>,
780 #[serde(
783 rename = "contentType",
784 default,
785 skip_serializing_if = "Option::is_none"
786 )]
787 pub content_type: Option<String>,
788 #[serde(default, skip_serializing_if = "Vec::is_empty")]
791 pub attachments: Vec<String>,
792 #[serde(default, skip_serializing_if = "Option::is_none")]
793 pub meta: Option<MessageMeta>,
794 #[serde(default, skip_serializing_if = "Option::is_none")]
797 pub source: Option<String>,
798 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
800 pub user_id: Option<String>,
801 #[serde(
803 rename = "conversationProviderId",
804 default,
805 skip_serializing_if = "Option::is_none"
806 )]
807 pub conversation_provider_id: Option<String>,
808 #[serde(
810 rename = "chatWidgetId",
811 default,
812 skip_serializing_if = "Option::is_none"
813 )]
814 pub chat_widget_id: Option<String>,
815}
816
817#[derive(Debug, Clone, Default, Serialize, Deserialize)]
819pub struct GetMessageTranscriptionResponseDto {
820 #[serde(
824 rename = "mediaChannel",
825 default,
826 skip_serializing_if = "Option::is_none"
827 )]
828 pub media_channel: Option<f64>,
829 #[serde(
833 rename = "sentenceIndex",
834 default,
835 skip_serializing_if = "Option::is_none"
836 )]
837 pub sentence_index: Option<f64>,
838 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
842 pub start_time: Option<f64>,
843 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
847 pub end_time: Option<f64>,
848 #[serde(default, skip_serializing_if = "Option::is_none")]
852 pub transcript: Option<String>,
853 #[serde(default, skip_serializing_if = "Option::is_none")]
857 pub confidence: Option<f64>,
858}
859
860#[derive(Debug, Clone, Default, Serialize, Deserialize)]
862pub struct GetMessagesByConversationResponseDto {
863 #[serde(
867 rename = "lastMessageId",
868 default,
869 skip_serializing_if = "Option::is_none"
870 )]
871 pub last_message_id: Option<String>,
872 #[serde(rename = "nextPage", default, skip_serializing_if = "Option::is_none")]
878 pub next_page: Option<bool>,
879 #[serde(default, skip_serializing_if = "Vec::is_empty")]
883 pub messages: Vec<GetMessageResponseDto>,
884}
885
886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
888pub struct InitiateFileUploadDto {
889 #[serde(rename = "locationId")]
892 pub location_id: String,
893 #[serde(rename = "conversationId")]
896 pub conversation_id: String,
897 pub filename: String,
900 #[serde(rename = "contentType")]
903 pub content_type: String,
904 #[serde(rename = "fileSize", default, skip_serializing_if = "Option::is_none")]
906 pub file_size: Option<f64>,
907 pub channel: String,
910}
911
912#[derive(Debug, Clone, Default, Serialize, Deserialize)]
914pub struct InitiateFileUploadResponseDto {
915 #[serde(rename = "uploadUrl", default, skip_serializing_if = "Option::is_none")]
919 pub upload_url: Option<String>,
920 #[serde(rename = "uploadId", default, skip_serializing_if = "Option::is_none")]
924 pub upload_id: Option<String>,
925 #[serde(rename = "filePath", default, skip_serializing_if = "Option::is_none")]
929 pub file_path: Option<String>,
930 #[serde(rename = "expiresAt", default, skip_serializing_if = "Option::is_none")]
934 pub expires_at: Option<f64>,
935 #[serde(
939 rename = "maxFileSize",
940 default,
941 skip_serializing_if = "Option::is_none"
942 )]
943 pub max_file_size: Option<f64>,
944}
945
946#[derive(Debug, Clone, Default, Serialize, Deserialize)]
948pub struct MessageMeta {
949 #[serde(
951 rename = "callDuration",
952 default,
953 skip_serializing_if = "Option::is_none"
954 )]
955 pub call_duration: Option<String>,
956 #[serde(
961 rename = "callStatus",
962 default,
963 skip_serializing_if = "Option::is_none"
964 )]
965 pub call_status: Option<String>,
966 #[serde(default, skip_serializing_if = "Option::is_none")]
969 pub email: Option<serde_json::Value>,
970}
971
972#[derive(Debug, Clone, Default, Serialize, Deserialize)]
974pub struct ProcessMessageBodyDto {
975 #[serde(rename = "type")]
980 pub type_: String,
981 #[serde(default, skip_serializing_if = "Vec::is_empty")]
983 pub attachments: Vec<String>,
984 #[serde(default, skip_serializing_if = "Option::is_none")]
986 pub message: Option<String>,
987 #[serde(rename = "conversationId")]
990 pub conversation_id: String,
991 #[serde(rename = "contactId")]
994 pub contact_id: String,
995 #[serde(rename = "conversationProviderId")]
998 pub conversation_provider_id: String,
999 #[serde(default, skip_serializing_if = "Option::is_none")]
1001 pub html: Option<String>,
1002 #[serde(default, skip_serializing_if = "Option::is_none")]
1004 pub subject: Option<String>,
1005 #[serde(rename = "emailFrom", default, skip_serializing_if = "Option::is_none")]
1008 pub email_from: Option<String>,
1009 #[serde(rename = "emailTo", default, skip_serializing_if = "Option::is_none")]
1012 pub email_to: Option<String>,
1013 #[serde(rename = "emailCc", default, skip_serializing_if = "Vec::is_empty")]
1015 pub email_cc: Vec<String>,
1016 #[serde(rename = "emailBcc", default, skip_serializing_if = "Vec::is_empty")]
1018 pub email_bcc: Vec<String>,
1019 #[serde(
1022 rename = "emailMessageId",
1023 default,
1024 skip_serializing_if = "Option::is_none"
1025 )]
1026 pub email_message_id: Option<String>,
1027 #[serde(rename = "altId", default, skip_serializing_if = "Option::is_none")]
1029 pub alt_id: Option<String>,
1030 #[serde(default, skip_serializing_if = "Option::is_none")]
1032 pub direction: Option<serde_json::Value>,
1033 #[serde(default, skip_serializing_if = "Option::is_none")]
1036 pub date: Option<String>,
1037 #[serde(default, skip_serializing_if = "Option::is_none")]
1039 pub call: Option<CallDataDTO>,
1040}
1041
1042#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1044pub struct ProcessMessageResponseDto {
1045 #[serde(default, skip_serializing_if = "Option::is_none")]
1048 pub success: Option<bool>,
1049 #[serde(
1053 rename = "conversationId",
1054 default,
1055 skip_serializing_if = "Option::is_none"
1056 )]
1057 pub conversation_id: Option<String>,
1058 #[serde(rename = "messageId", default, skip_serializing_if = "Option::is_none")]
1062 pub message_id: Option<String>,
1063 #[serde(default, skip_serializing_if = "Option::is_none")]
1066 pub message: Option<String>,
1067 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
1068 pub contact_id: Option<String>,
1069 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
1071 pub date_added: Option<String>,
1072 #[serde(
1073 rename = "emailMessageId",
1074 default,
1075 skip_serializing_if = "Option::is_none"
1076 )]
1077 pub email_message_id: Option<String>,
1078}
1079
1080#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1082pub struct ProcessOutboundMessageBodyDto {
1083 #[serde(rename = "type")]
1087 pub type_: String,
1088 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1090 pub attachments: Vec<String>,
1091 #[serde(rename = "conversationId")]
1094 pub conversation_id: String,
1095 #[serde(rename = "conversationProviderId")]
1098 pub conversation_provider_id: String,
1099 #[serde(rename = "altId", default, skip_serializing_if = "Option::is_none")]
1101 pub alt_id: Option<String>,
1102 #[serde(default, skip_serializing_if = "Option::is_none")]
1105 pub date: Option<String>,
1106 #[serde(default, skip_serializing_if = "Option::is_none")]
1108 pub call: Option<CallDataDTO>,
1109}
1110
1111#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1113pub struct SendConversationResponseDto {
1114 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1118 pub conversations: Vec<ConversationSchema>,
1119 #[serde(default, skip_serializing_if = "Option::is_none")]
1123 pub total: Option<f64>,
1124}
1125
1126#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1128pub struct SendMessageBodyDto {
1129 #[serde(rename = "type")]
1134 pub type_: String,
1135 #[serde(rename = "subType")]
1138 pub sub_type: serde_json::Value,
1139 #[serde(rename = "contactId")]
1142 pub contact_id: String,
1143 #[serde(
1145 rename = "appointmentId",
1146 default,
1147 skip_serializing_if = "Option::is_none"
1148 )]
1149 pub appointment_id: Option<String>,
1150 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1152 pub attachments: Vec<String>,
1153 #[serde(rename = "emailFrom", default, skip_serializing_if = "Option::is_none")]
1155 pub email_from: Option<String>,
1156 #[serde(rename = "emailCc", default, skip_serializing_if = "Vec::is_empty")]
1158 pub email_cc: Vec<String>,
1159 #[serde(rename = "emailBcc", default, skip_serializing_if = "Vec::is_empty")]
1161 pub email_bcc: Vec<String>,
1162 #[serde(default, skip_serializing_if = "Option::is_none")]
1164 pub html: Option<String>,
1165 #[serde(default, skip_serializing_if = "Option::is_none")]
1167 pub message: Option<String>,
1168 #[serde(default, skip_serializing_if = "Option::is_none")]
1170 pub subject: Option<String>,
1171 #[serde(
1173 rename = "replyMessageId",
1174 default,
1175 skip_serializing_if = "Option::is_none"
1176 )]
1177 pub reply_message_id: Option<String>,
1178 #[serde(
1180 rename = "templateId",
1181 default,
1182 skip_serializing_if = "Option::is_none"
1183 )]
1184 pub template_id: Option<String>,
1185 #[serde(rename = "threadId", default, skip_serializing_if = "Option::is_none")]
1188 pub thread_id: Option<String>,
1189 #[serde(
1191 rename = "scheduledTimestamp",
1192 default,
1193 skip_serializing_if = "Option::is_none"
1194 )]
1195 pub scheduled_timestamp: Option<f64>,
1196 #[serde(
1198 rename = "conversationProviderId",
1199 default,
1200 skip_serializing_if = "Option::is_none"
1201 )]
1202 pub conversation_provider_id: Option<String>,
1203 #[serde(rename = "emailTo", default, skip_serializing_if = "Option::is_none")]
1206 pub email_to: Option<String>,
1207 #[serde(
1209 rename = "customSubtypeId",
1210 default,
1211 skip_serializing_if = "Option::is_none"
1212 )]
1213 pub custom_subtype_id: Option<String>,
1214 #[serde(
1217 rename = "emailReplyMode",
1218 default,
1219 skip_serializing_if = "Option::is_none"
1220 )]
1221 pub email_reply_mode: Option<String>,
1222 #[serde(
1224 rename = "fromNumber",
1225 default,
1226 skip_serializing_if = "Option::is_none"
1227 )]
1228 pub from_number: Option<String>,
1229 #[serde(rename = "toNumber", default, skip_serializing_if = "Option::is_none")]
1231 pub to_number: Option<String>,
1232 #[serde(default, skip_serializing_if = "Option::is_none")]
1234 pub forward: Option<ForwardConfigDto>,
1235 pub status: String,
1239 #[serde(
1241 rename = "usesNativeSchedulingAi",
1242 default,
1243 skip_serializing_if = "Option::is_none"
1244 )]
1245 pub uses_native_scheduling_ai: Option<bool>,
1246 #[serde(
1249 rename = "optimizationPeriod",
1250 default,
1251 skip_serializing_if = "Option::is_none"
1252 )]
1253 pub optimization_period: Option<String>,
1254}
1255
1256#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1258pub struct SendMessageResponseDto {
1259 #[serde(
1263 rename = "conversationId",
1264 default,
1265 skip_serializing_if = "Option::is_none"
1266 )]
1267 pub conversation_id: Option<String>,
1268 #[serde(
1271 rename = "emailMessageId",
1272 default,
1273 skip_serializing_if = "Option::is_none"
1274 )]
1275 pub email_message_id: Option<String>,
1276 #[serde(rename = "messageId", default, skip_serializing_if = "Option::is_none")]
1280 pub message_id: Option<String>,
1281 #[serde(rename = "messageIds", default, skip_serializing_if = "Vec::is_empty")]
1284 pub message_ids: Vec<String>,
1285 #[serde(default, skip_serializing_if = "Option::is_none")]
1287 pub msg: Option<String>,
1288 #[serde(
1290 rename = "forwardData",
1291 default,
1292 skip_serializing_if = "Option::is_none"
1293 )]
1294 pub forward_data: Option<ForwardResponseDto>,
1295 #[serde(default, skip_serializing_if = "Option::is_none")]
1300 pub status: Option<String>,
1301}
1302
1303#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1305pub struct SendReviewReplyDto {
1306 #[serde(rename = "conversationId")]
1309 pub conversation_id: String,
1310 #[serde(rename = "locationId")]
1313 pub location_id: String,
1314 pub message: String,
1317}
1318
1319#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1321pub struct StartAfterArrayNumberSchema {
1322 #[serde(
1325 rename = "startAfterDate",
1326 default,
1327 skip_serializing_if = "Vec::is_empty"
1328 )]
1329 pub start_after_date: Vec<String>,
1330}
1331
1332#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1334pub struct StartAfterNumberSchema {
1335 #[serde(
1338 rename = "startAfterDate",
1339 default,
1340 skip_serializing_if = "Option::is_none"
1341 )]
1342 pub start_after_date: Option<f64>,
1343}
1344
1345#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1347pub struct SubscriptionActionDto {
1348 #[serde(rename = "type")]
1352 pub type_: String,
1353 #[serde(default, skip_serializing_if = "Option::is_none")]
1356 pub subtype_name: Option<String>,
1357 #[serde(default, skip_serializing_if = "Option::is_none")]
1359 pub subtype_id: Option<String>,
1360 pub subtype_status: String,
1364}
1365
1366#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1368pub struct UpdateConversationDto {
1369 #[serde(rename = "locationId")]
1372 pub location_id: String,
1373 #[serde(
1375 rename = "unreadCount",
1376 default,
1377 skip_serializing_if = "Option::is_none"
1378 )]
1379 pub unread_count: Option<f64>,
1380 #[serde(default, skip_serializing_if = "Option::is_none")]
1382 pub starred: Option<bool>,
1383 #[serde(default, skip_serializing_if = "Option::is_none")]
1384 pub feedback: Option<serde_json::Value>,
1385}
1386
1387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1389pub struct UpdateCustomSubtypeDto {
1390 #[serde(default, skip_serializing_if = "Option::is_none")]
1392 pub name: Option<String>,
1393 #[serde(default, skip_serializing_if = "Option::is_none")]
1395 pub description: Option<String>,
1396 #[serde(default, skip_serializing_if = "Option::is_none")]
1398 pub archived: Option<bool>,
1399 #[serde(default, skip_serializing_if = "Option::is_none")]
1401 pub resubscription_legal_form_id: Option<String>,
1402}
1403
1404#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1406pub struct UpdateMessageStatusDto {
1407 pub status: String,
1411 #[serde(default, skip_serializing_if = "Option::is_none")]
1413 pub error: Option<ErrorDto>,
1414 #[serde(
1416 rename = "emailMessageId",
1417 default,
1418 skip_serializing_if = "Option::is_none"
1419 )]
1420 pub email_message_id: Option<String>,
1421 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1423 pub recipients: Vec<String>,
1424}
1425
1426#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1428pub struct UploadFilesDto {
1429 #[serde(rename = "conversationId")]
1432 pub conversation_id: String,
1433 #[serde(rename = "contactId")]
1436 pub contact_id: String,
1437 #[serde(rename = "locationId")]
1439 pub location_id: String,
1440 #[serde(
1442 rename = "attachmentUrls",
1443 default,
1444 skip_serializing_if = "Vec::is_empty"
1445 )]
1446 pub attachment_urls: Vec<String>,
1447 #[serde(
1449 rename = "chatServiceSid",
1450 default,
1451 skip_serializing_if = "Option::is_none"
1452 )]
1453 pub chat_service_sid: Option<String>,
1454 #[serde(
1457 rename = "isGroupSms",
1458 default,
1459 skip_serializing_if = "Option::is_none"
1460 )]
1461 pub is_group_sms: Option<String>,
1462}
1463
1464#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1466pub struct UploadFilesErrorResponseDto {
1467 #[serde(default, skip_serializing_if = "Option::is_none")]
1472 pub status: Option<String>,
1473 #[serde(default, skip_serializing_if = "Option::is_none")]
1477 pub message: Option<String>,
1478}
1479
1480#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1482pub struct UploadFilesResponseDto {
1483 #[serde(
1486 rename = "uploadedFiles",
1487 default,
1488 skip_serializing_if = "Option::is_none"
1489 )]
1490 pub uploaded_files: Option<serde_json::Value>,
1491 #[serde(
1493 rename = "twilioMediaSids",
1494 default,
1495 skip_serializing_if = "Vec::is_empty"
1496 )]
1497 pub twilio_media_sids: Vec<String>,
1498}
1499
1500#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1502pub struct UserSubscriptionChangeDto {
1503 #[serde(rename = "locationId")]
1506 pub location_id: String,
1507 #[serde(rename = "contactId")]
1510 pub contact_id: String,
1511 pub email: String,
1514 pub subscription_action: SubscriptionActionDto,
1517 #[serde(default, skip_serializing_if = "Option::is_none")]
1519 pub legal_reason: Option<String>,
1520 #[serde(default, skip_serializing_if = "Option::is_none")]
1522 pub legal_description: Option<String>,
1523}
1524
1525#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1527pub struct UserTypingBody {
1528 #[serde(rename = "locationId")]
1531 pub location_id: String,
1532 #[serde(rename = "isTyping")]
1535 pub is_typing: String,
1536 #[serde(rename = "visitorId")]
1540 pub visitor_id: String,
1541 #[serde(rename = "conversationId")]
1544 pub conversation_id: String,
1545}