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 BuilderAttributePublicV2Dto {
24 pub name: String,
27 #[serde(default, skip_serializing_if = "Option::is_none")]
29 pub default: Option<serde_json::Value>,
30 #[serde(default, skip_serializing_if = "Option::is_none")]
32 pub unit: Option<String>,
33}
34
35#[derive(Debug, Clone, Default, Serialize, Deserialize)]
37pub struct BuilderCustomFlagsPublicV2Dto {
38 #[serde(rename = "layoutId", default, skip_serializing_if = "Option::is_none")]
40 pub layout_id: Option<serde_json::Value>,
41 #[serde(default, skip_serializing_if = "Option::is_none")]
43 pub theme: Option<String>,
44 #[serde(
47 rename = "socialElementType",
48 default,
49 skip_serializing_if = "Option::is_none"
50 )]
51 pub social_element_type: Option<String>,
52}
53
54#[derive(Debug, Clone, Default, Serialize, Deserialize)]
56pub struct BuilderEditorContentPublicV2Dto {
57 #[serde(default, skip_serializing_if = "Vec::is_empty")]
59 pub elements: Vec<BuilderElementNodePublicV2Dto>,
60 #[serde(default, skip_serializing_if = "Option::is_none")]
62 pub attrs: Option<serde_json::Value>,
63 #[serde(
65 rename = "templateSettings",
66 default,
67 skip_serializing_if = "Option::is_none"
68 )]
69 pub template_settings: Option<serde_json::Value>,
70}
71
72#[derive(Debug, Clone, Default, Serialize, Deserialize)]
74pub struct BuilderElementNodePublicV2Dto {
75 pub id: String,
78 #[serde(rename = "tagName")]
81 pub tag_name: String,
82 #[serde(default, skip_serializing_if = "Vec::is_empty")]
84 pub children: Vec<BuilderElementNodePublicV2Dto>,
85}
86
87#[derive(Debug, Clone, Default, Serialize, Deserialize)]
89pub struct BuilderNodeAttrsPublicV2Dto {
90 #[serde(rename = "tagName")]
93 pub tag_name: String,
94 #[serde(default, skip_serializing_if = "Vec::is_empty")]
97 pub attributes: Vec<BuilderAttributePublicV2Dto>,
98 #[serde(default, skip_serializing_if = "Option::is_none")]
100 pub content: Option<String>,
101 #[serde(
103 rename = "customFlags",
104 default,
105 skip_serializing_if = "Option::is_none"
106 )]
107 pub custom_flags: Option<BuilderCustomFlagsPublicV2Dto>,
108}
109
110#[derive(Debug, Clone, Default, Serialize, Deserialize)]
112pub struct BuilderUpdateSuccessfulDTO {
113 #[serde(default, skip_serializing_if = "Option::is_none")]
115 pub ok: Option<String>,
116 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
118 pub trace_id: Option<String>,
119 #[serde(
121 rename = "previewUrl",
122 default,
123 skip_serializing_if = "Option::is_none"
124 )]
125 pub preview_url: Option<String>,
126 #[serde(
128 rename = "templateDownloadUrl",
129 default,
130 skip_serializing_if = "Option::is_none"
131 )]
132 pub template_download_url: Option<String>,
133 #[serde(rename = "versionId", default, skip_serializing_if = "Option::is_none")]
135 pub version_id: Option<String>,
136}
137
138#[derive(Debug, Clone, Default, Serialize, Deserialize)]
140pub struct BulkActionCampaignDto {
141 pub id: String,
144 pub name: String,
147 pub status: String,
151 #[serde(rename = "scheduleType")]
154 pub schedule_type: String,
155 #[serde(rename = "createdBy")]
158 pub created_by: String,
159 pub deleted: bool,
162 #[serde(rename = "createdAt")]
165 pub created_at: String,
166 #[serde(rename = "updatedAt")]
169 pub updated_at: String,
170 #[serde(
172 rename = "completedAt",
173 default,
174 skip_serializing_if = "Option::is_none"
175 )]
176 pub completed_at: Option<String>,
177 #[serde(
179 rename = "emailMetadata",
180 default,
181 skip_serializing_if = "Option::is_none"
182 )]
183 pub email_metadata: Option<BulkActionCampaignEmailDetailsDto>,
184}
185
186#[derive(Debug, Clone, Default, Serialize, Deserialize)]
188pub struct BulkActionCampaignEmailDetailsDto {
189 #[serde(default, skip_serializing_if = "Option::is_none")]
191 pub subject: Option<String>,
192 #[serde(rename = "from", default, skip_serializing_if = "Option::is_none")]
194 pub from_: Option<String>,
195 #[serde(default, skip_serializing_if = "Option::is_none")]
197 pub name: Option<String>,
198 #[serde(
200 rename = "templateId",
201 default,
202 skip_serializing_if = "Option::is_none"
203 )]
204 pub template_id: Option<String>,
205}
206
207#[derive(Debug, Clone, Default, Serialize, Deserialize)]
209pub struct BulkActionCampaignPublicV2Dto {
210 pub id: String,
213 #[serde(default, skip_serializing_if = "Option::is_none")]
215 pub source: Option<String>,
216 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
218 pub source_id: Option<String>,
219 #[serde(default, skip_serializing_if = "Option::is_none")]
221 pub name: Option<String>,
222 pub status: String,
226 #[serde(
229 rename = "scheduleType",
230 default,
231 skip_serializing_if = "Option::is_none"
232 )]
233 pub schedule_type: Option<String>,
234 pub deleted: bool,
237 #[serde(rename = "createdAt")]
240 pub created_at: String,
241 #[serde(rename = "updatedAt")]
244 pub updated_at: String,
245 #[serde(
247 rename = "completedAt",
248 default,
249 skip_serializing_if = "Option::is_none"
250 )]
251 pub completed_at: Option<String>,
252 #[serde(
254 rename = "emailMetadata",
255 default,
256 skip_serializing_if = "Option::is_none"
257 )]
258 pub email_metadata: Option<BulkActionCampaignEmailDetailsDto>,
259}
260
261#[derive(Debug, Clone, Default, Serialize, Deserialize)]
263pub struct CreateBuilderDto {
264 #[serde(rename = "locationId")]
266 pub location_id: String,
267 #[serde(default, skip_serializing_if = "Option::is_none")]
268 pub title: Option<String>,
269 #[serde(rename = "type")]
273 pub type_: String,
274 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
275 pub updated_by: Option<String>,
276 #[serde(
278 rename = "builderVersion",
279 default,
280 skip_serializing_if = "Option::is_none"
281 )]
282 pub builder_version: Option<String>,
283 #[serde(default, skip_serializing_if = "Option::is_none")]
284 pub name: Option<String>,
285 #[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
286 pub parent_id: Option<String>,
287 #[serde(
288 rename = "templateDataUrl",
289 default,
290 skip_serializing_if = "Option::is_none"
291 )]
292 pub template_data_url: Option<String>,
293 #[serde(rename = "importProvider")]
297 pub import_provider: String,
298 #[serde(rename = "importURL", default, skip_serializing_if = "Option::is_none")]
299 pub import_url: Option<String>,
300 #[serde(
301 rename = "templateSource",
302 default,
303 skip_serializing_if = "Option::is_none"
304 )]
305 pub template_source: Option<String>,
306 #[serde(
307 rename = "isPlainText",
308 default,
309 skip_serializing_if = "Option::is_none"
310 )]
311 pub is_plain_text: Option<bool>,
312 #[serde(
313 rename = "subjectLine",
314 default,
315 skip_serializing_if = "Option::is_none"
316 )]
317 pub subject_line: Option<String>,
318 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
319 pub from_name: Option<String>,
320 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
321 pub from_email: Option<String>,
322 #[serde(
323 rename = "previewText",
324 default,
325 skip_serializing_if = "Option::is_none"
326 )]
327 pub preview_text: Option<String>,
328}
329
330#[derive(Debug, Clone, Default, Serialize, Deserialize)]
332pub struct CreateBuilderSuccesfulResponseDto {
333 pub redirect: String,
336 #[serde(rename = "traceId")]
339 pub trace_id: String,
340}
341
342#[derive(Debug, Clone, Default, Serialize, Deserialize)]
344pub struct CreateEmailCampaignPublicV2BodyDto {
345 pub name: String,
348 #[serde(rename = "editorType")]
353 pub editor_type: String,
354 #[serde(
357 rename = "templateId",
358 default,
359 skip_serializing_if = "Option::is_none"
360 )]
361 pub template_id: Option<String>,
362 #[serde(
365 rename = "editorContent",
366 default,
367 skip_serializing_if = "Option::is_none"
368 )]
369 pub editor_content: Option<String>,
370 #[serde(
372 rename = "parentFolderId",
373 default,
374 skip_serializing_if = "Option::is_none"
375 )]
376 pub parent_folder_id: Option<String>,
377 #[serde(rename = "timeZone")]
380 pub time_zone: String,
381 #[serde(rename = "userId")]
384 pub user_id: String,
385 #[serde(rename = "userName", default, skip_serializing_if = "Option::is_none")]
387 pub user_name: Option<String>,
388}
389
390#[derive(Debug, Clone, Default, Serialize, Deserialize)]
392pub struct CreateEmailCampaignPublicV2ResponseDto {
393 pub id: String,
396 #[serde(default, skip_serializing_if = "Option::is_none")]
398 pub source: Option<String>,
399 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
401 pub source_id: Option<String>,
402 #[serde(default, skip_serializing_if = "Option::is_none")]
404 pub name: Option<String>,
405 #[serde(default, skip_serializing_if = "Option::is_none")]
409 pub status: Option<String>,
410 #[serde(
412 rename = "campaignType",
413 default,
414 skip_serializing_if = "Option::is_none"
415 )]
416 pub campaign_type: Option<String>,
417 #[serde(
419 rename = "campaignCategory",
420 default,
421 skip_serializing_if = "Option::is_none"
422 )]
423 pub campaign_category: Option<String>,
424 #[serde(default, skip_serializing_if = "Vec::is_empty")]
426 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
427 pub deleted: bool,
430 #[serde(rename = "createdAt")]
433 pub created_at: String,
434 #[serde(rename = "updatedAt")]
437 pub updated_at: String,
438 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
440 pub trace_id: Option<String>,
441}
442
443#[derive(Debug, Clone, Default, Serialize, Deserialize)]
445pub struct CreateTemplateFolderPublicV2BodyDto {
446 pub name: String,
449 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
451 pub user_id: Option<String>,
452}
453
454#[derive(Debug, Clone, Default, Serialize, Deserialize)]
456pub struct CreateTemplateFolderPublicV2ResponseDto {
457 pub id: String,
460 pub name: String,
463 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
465 pub created_at: Option<String>,
466 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
468 pub updated_at: Option<String>,
469 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
471 pub trace_id: Option<String>,
472}
473
474#[derive(Debug, Clone, Default, Serialize, Deserialize)]
476pub struct CreateTemplatePublicV2BodyDto {
477 pub name: String,
480 #[serde(rename = "editorType")]
485 pub editor_type: String,
486 #[serde(
488 rename = "editorContent",
489 default,
490 skip_serializing_if = "Option::is_none"
491 )]
492 pub editor_content: Option<String>,
493 #[serde(
495 rename = "parentFolderId",
496 default,
497 skip_serializing_if = "Option::is_none"
498 )]
499 pub parent_folder_id: Option<String>,
500 #[serde(
502 rename = "subjectLine",
503 default,
504 skip_serializing_if = "Option::is_none"
505 )]
506 pub subject_line: Option<String>,
507 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
509 pub from_name: Option<String>,
510 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
512 pub from_email: Option<String>,
513 #[serde(
515 rename = "previewText",
516 default,
517 skip_serializing_if = "Option::is_none"
518 )]
519 pub preview_text: Option<String>,
520 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
522 pub user_id: Option<String>,
523}
524
525#[derive(Debug, Clone, Default, Serialize, Deserialize)]
527pub struct CreateTemplatePublicV2ResponseDto {
528 pub id: String,
531 pub name: String,
534 #[serde(rename = "editorType")]
538 pub editor_type: String,
539 #[serde(rename = "isPlainText")]
542 pub is_plain_text: bool,
543 #[serde(
545 rename = "parentFolderId",
546 default,
547 skip_serializing_if = "Option::is_none"
548 )]
549 pub parent_folder_id: Option<String>,
550 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
552 pub from_name: Option<String>,
553 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
555 pub from_email: Option<String>,
556 #[serde(
558 rename = "subjectLine",
559 default,
560 skip_serializing_if = "Option::is_none"
561 )]
562 pub subject_line: Option<String>,
563 #[serde(
565 rename = "previewText",
566 default,
567 skip_serializing_if = "Option::is_none"
568 )]
569 pub preview_text: Option<String>,
570 #[serde(
572 rename = "previewUrl",
573 default,
574 skip_serializing_if = "Option::is_none"
575 )]
576 pub preview_url: Option<String>,
577 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
579 pub created_at: Option<String>,
580 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
582 pub updated_at: Option<String>,
583 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
585 pub trace_id: Option<String>,
586}
587
588#[derive(Debug, Clone, Default, Serialize, Deserialize)]
590pub struct DeleteBuilderSuccesfulResponseDto {
591 #[serde(default, skip_serializing_if = "Option::is_none")]
593 pub ok: Option<String>,
594 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
596 pub trace_id: Option<String>,
597}
598
599#[derive(Debug, Clone, Default, Serialize, Deserialize)]
601pub struct DeleteCampaignPublicV2ResponseDto {
602 pub deleted: bool,
605 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
607 pub trace_id: Option<String>,
608}
609
610#[derive(Debug, Clone, Default, Serialize, Deserialize)]
612pub struct DeleteTemplatePublicV2ResponseDto {
613 pub deleted: bool,
616 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
618 pub trace_id: Option<String>,
619}
620
621#[derive(Debug, Clone, Default, Serialize, Deserialize)]
623pub struct EmailCampaignPublicV2Dto {
624 pub id: String,
627 #[serde(default, skip_serializing_if = "Option::is_none")]
629 pub source: Option<String>,
630 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
632 pub source_id: Option<String>,
633 #[serde(default, skip_serializing_if = "Option::is_none")]
635 pub name: Option<String>,
636 #[serde(default, skip_serializing_if = "Option::is_none")]
640 pub status: Option<String>,
641 #[serde(
643 rename = "campaignType",
644 default,
645 skip_serializing_if = "Option::is_none"
646 )]
647 pub campaign_type: Option<String>,
648 #[serde(
650 rename = "campaignCategory",
651 default,
652 skip_serializing_if = "Option::is_none"
653 )]
654 pub campaign_category: Option<String>,
655 #[serde(default, skip_serializing_if = "Vec::is_empty")]
657 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
658 pub deleted: bool,
661 #[serde(rename = "createdAt")]
664 pub created_at: String,
665 #[serde(rename = "updatedAt")]
668 pub updated_at: String,
669}
670
671#[derive(Debug, Clone, Default, Serialize, Deserialize)]
673pub struct EmailCampaignVariationPublicV2Dto {
674 #[serde(rename = "sourceId")]
677 pub source_id: String,
678 #[serde(rename = "isWinner")]
681 pub is_winner: bool,
682}
683
684#[derive(Debug, Clone, Default, Serialize, Deserialize)]
686pub struct EmailStatsNumbersDto {
687 pub delivered: f64,
690 pub opened: f64,
693 pub clicked: f64,
696 pub unsubscribed: f64,
699 pub complained: f64,
702 #[serde(rename = "permanentFail")]
705 pub permanent_fail: f64,
706 #[serde(rename = "temporaryFail")]
709 pub temporary_fail: f64,
710 pub rejected: f64,
713 pub failed: f64,
716 pub replied: f64,
719}
720
721#[derive(Debug, Clone, Default, Serialize, Deserialize)]
723pub struct EmailStatsNumbersPublicV2Dto {
724 pub sent: f64,
727 pub accepted: f64,
730 pub delivered: f64,
733 pub opened: f64,
736 pub clicked: f64,
739 pub unsubscribed: f64,
742 pub complained: f64,
745 #[serde(rename = "permanentFail")]
748 pub permanent_fail: f64,
749 #[serde(rename = "temporaryFail")]
752 pub temporary_fail: f64,
753 pub rejected: f64,
756 pub failed: f64,
759 pub replied: f64,
762 #[serde(rename = "openRate")]
765 pub open_rate: f64,
766 #[serde(rename = "clickRate")]
769 pub click_rate: f64,
770 #[serde(rename = "unsubscribeRate")]
773 pub unsubscribe_rate: f64,
774 #[serde(rename = "complaintRate")]
777 pub complaint_rate: f64,
778 #[serde(rename = "bounceRate")]
781 pub bounce_rate: f64,
782 #[serde(rename = "replyRate")]
785 pub reply_rate: f64,
786}
787
788#[derive(Debug, Clone, Default, Serialize, Deserialize)]
790pub struct FetchBuilderSuccesfulResponseDto {
791 #[serde(default, skip_serializing_if = "Option::is_none")]
793 pub name: Option<String>,
794 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
796 pub updated_by: Option<String>,
797 #[serde(
799 rename = "isPlainText",
800 default,
801 skip_serializing_if = "Option::is_none"
802 )]
803 pub is_plain_text: Option<bool>,
804 #[serde(
806 rename = "lastUpdated",
807 default,
808 skip_serializing_if = "Option::is_none"
809 )]
810 pub last_updated: Option<String>,
811 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
813 pub date_added: Option<String>,
814 #[serde(
816 rename = "previewUrl",
817 default,
818 skip_serializing_if = "Option::is_none"
819 )]
820 pub preview_url: Option<String>,
821 #[serde(default, skip_serializing_if = "Option::is_none")]
823 pub id: Option<String>,
824 #[serde(default, skip_serializing_if = "Option::is_none")]
826 pub version: Option<String>,
827 #[serde(
829 rename = "templateType",
830 default,
831 skip_serializing_if = "Option::is_none"
832 )]
833 pub template_type: Option<String>,
834}
835
836#[derive(Debug, Clone, Default, Serialize, Deserialize)]
838pub struct GetBulkActionCampaignPublicV2ResponseDto {
839 pub id: String,
842 #[serde(default, skip_serializing_if = "Option::is_none")]
844 pub source: Option<String>,
845 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
847 pub source_id: Option<String>,
848 #[serde(default, skip_serializing_if = "Option::is_none")]
850 pub name: Option<String>,
851 pub status: String,
855 #[serde(
858 rename = "scheduleType",
859 default,
860 skip_serializing_if = "Option::is_none"
861 )]
862 pub schedule_type: Option<String>,
863 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
865 pub from_name: Option<String>,
866 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
868 pub from_email: Option<String>,
869 #[serde(default, skip_serializing_if = "Option::is_none")]
871 pub subject: Option<String>,
872 #[serde(
874 rename = "replyToAddress",
875 default,
876 skip_serializing_if = "Option::is_none"
877 )]
878 pub reply_to_address: Option<String>,
879 #[serde(
881 rename = "previewText",
882 default,
883 skip_serializing_if = "Option::is_none"
884 )]
885 pub preview_text: Option<String>,
886 #[serde(
889 rename = "editorType",
890 default,
891 skip_serializing_if = "Option::is_none"
892 )]
893 pub editor_type: Option<String>,
894 #[serde(
896 rename = "isPlainText",
897 default,
898 skip_serializing_if = "Option::is_none"
899 )]
900 pub is_plain_text: Option<bool>,
901 #[serde(
904 rename = "editorContentUrl",
905 default,
906 skip_serializing_if = "Option::is_none"
907 )]
908 pub editor_content_url: Option<String>,
909 pub deleted: bool,
912 #[serde(rename = "createdAt")]
915 pub created_at: String,
916 #[serde(rename = "updatedAt")]
919 pub updated_at: String,
920 #[serde(
922 rename = "completedAt",
923 default,
924 skip_serializing_if = "Option::is_none"
925 )]
926 pub completed_at: Option<String>,
927 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
929 pub trace_id: Option<String>,
930}
931
932#[derive(Debug, Clone, Default, Serialize, Deserialize)]
934pub struct GetBulkActionCampaignsResponseDto {
935 #[serde(default, skip_serializing_if = "Vec::is_empty")]
938 pub campaigns: Vec<BulkActionCampaignDto>,
939 pub total: f64,
942}
943
944#[derive(Debug, Clone, Default, Serialize, Deserialize)]
946pub struct GetCampaignStatsPublicV2ResponseDto {
947 #[serde(rename = "locationId")]
950 pub location_id: String,
951 pub source: String,
955 #[serde(rename = "sourceId")]
958 pub source_id: String,
959 #[serde(
961 rename = "subSourceId",
962 default,
963 skip_serializing_if = "Option::is_none"
964 )]
965 pub sub_source_id: Option<String>,
966 pub stats: EmailStatsNumbersPublicV2Dto,
969 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
971 pub trace_id: Option<String>,
972}
973
974#[derive(Debug, Clone, Default, Serialize, Deserialize)]
976pub struct GetCampaignStatsResponseDto {
977 #[serde(rename = "locationId")]
980 pub location_id: String,
981 pub source: String,
985 #[serde(rename = "sourceId")]
988 pub source_id: String,
989 #[serde(
991 rename = "subSourceId",
992 default,
993 skip_serializing_if = "Option::is_none"
994 )]
995 pub sub_source_id: Option<String>,
996 pub stats: EmailStatsNumbersDto,
999}
1000
1001#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1003pub struct GetEmailCampaignPublicV2ResponseDto {
1004 pub id: String,
1007 #[serde(default, skip_serializing_if = "Option::is_none")]
1009 pub source: Option<String>,
1010 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1012 pub source_id: Option<String>,
1013 #[serde(default, skip_serializing_if = "Option::is_none")]
1015 pub name: Option<String>,
1016 #[serde(default, skip_serializing_if = "Option::is_none")]
1020 pub status: Option<String>,
1021 #[serde(
1023 rename = "campaignType",
1024 default,
1025 skip_serializing_if = "Option::is_none"
1026 )]
1027 pub campaign_type: Option<String>,
1028 #[serde(
1030 rename = "campaignCategory",
1031 default,
1032 skip_serializing_if = "Option::is_none"
1033 )]
1034 pub campaign_category: Option<String>,
1035 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1037 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
1038 #[serde(
1041 rename = "editorType",
1042 default,
1043 skip_serializing_if = "Option::is_none"
1044 )]
1045 pub editor_type: Option<String>,
1046 #[serde(
1048 rename = "isPlainText",
1049 default,
1050 skip_serializing_if = "Option::is_none"
1051 )]
1052 pub is_plain_text: Option<bool>,
1053 #[serde(
1056 rename = "editorContentUrl",
1057 default,
1058 skip_serializing_if = "Option::is_none"
1059 )]
1060 pub editor_content_url: Option<String>,
1061 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1063 pub from_name: Option<String>,
1064 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1066 pub from_email: Option<String>,
1067 #[serde(default, skip_serializing_if = "Option::is_none")]
1069 pub subject: Option<String>,
1070 #[serde(
1072 rename = "replyToAddress",
1073 default,
1074 skip_serializing_if = "Option::is_none"
1075 )]
1076 pub reply_to_address: Option<String>,
1077 #[serde(
1079 rename = "previewText",
1080 default,
1081 skip_serializing_if = "Option::is_none"
1082 )]
1083 pub preview_text: Option<String>,
1084 pub deleted: bool,
1087 #[serde(rename = "createdAt")]
1090 pub created_at: String,
1091 #[serde(rename = "updatedAt")]
1094 pub updated_at: String,
1095 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1097 pub trace_id: Option<String>,
1098}
1099
1100#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1102pub struct GetTemplatePublicV2ResponseDto {
1103 pub id: String,
1106 pub name: String,
1109 #[serde(rename = "editorType")]
1113 pub editor_type: String,
1114 #[serde(rename = "isPlainText")]
1117 pub is_plain_text: bool,
1118 #[serde(
1120 rename = "parentFolderId",
1121 default,
1122 skip_serializing_if = "Option::is_none"
1123 )]
1124 pub parent_folder_id: Option<String>,
1125 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1127 pub from_name: Option<String>,
1128 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1130 pub from_email: Option<String>,
1131 #[serde(default, skip_serializing_if = "Option::is_none")]
1133 pub subject: Option<String>,
1134 #[serde(
1136 rename = "previewText",
1137 default,
1138 skip_serializing_if = "Option::is_none"
1139 )]
1140 pub preview_text: Option<String>,
1141 #[serde(
1144 rename = "editorContentUrl",
1145 default,
1146 skip_serializing_if = "Option::is_none"
1147 )]
1148 pub editor_content_url: Option<String>,
1149 pub deleted: bool,
1152 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1154 pub created_at: Option<String>,
1155 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1157 pub updated_at: Option<String>,
1158 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1160 pub trace_id: Option<String>,
1161}
1162
1163#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1165pub struct GetWorkflowCampaignPublicV2ResponseDto {
1166 pub id: String,
1169 #[serde(default, skip_serializing_if = "Option::is_none")]
1171 pub name: Option<String>,
1172 #[serde(default, skip_serializing_if = "Option::is_none")]
1175 pub status: Option<String>,
1176 #[serde(default, skip_serializing_if = "Option::is_none")]
1178 pub source: Option<String>,
1179 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1181 pub source_id: Option<String>,
1182 #[serde(rename = "subSources", default, skip_serializing_if = "Vec::is_empty")]
1186 pub sub_sources: Vec<WorkflowCampaignSubSourcePublicV2Dto>,
1187 #[serde(default, skip_serializing_if = "Option::is_none")]
1189 pub deleted: Option<bool>,
1190 #[serde(rename = "createdAt")]
1193 pub created_at: String,
1194 #[serde(rename = "updatedAt")]
1197 pub updated_at: String,
1198 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1200 pub trace_id: Option<String>,
1201}
1202
1203#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1205pub struct GetWorkflowCampaignsPublicResponseDto {
1206 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1209 pub campaigns: Vec<WorkflowCampaignPublicDto>,
1210 pub total: f64,
1213}
1214
1215#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1217pub struct IBuilderJsonMapper {
1218 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1221 pub elements: Vec<String>,
1222 pub attrs: serde_json::Value,
1225 #[serde(rename = "templateSettings")]
1228 pub template_settings: TemplateSettings,
1229}
1230
1231#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1233pub struct ImportTemplatePublicV2BodyDto {
1234 #[serde(rename = "importProvider")]
1238 pub import_provider: String,
1239 #[serde(rename = "importUrl")]
1242 pub import_url: String,
1243 #[serde(default, skip_serializing_if = "Option::is_none")]
1245 pub name: Option<String>,
1246 #[serde(
1248 rename = "parentFolderId",
1249 default,
1250 skip_serializing_if = "Option::is_none"
1251 )]
1252 pub parent_folder_id: Option<String>,
1253 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
1255 pub user_id: Option<String>,
1256}
1257
1258#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1260pub struct ImportTemplatePublicV2ResponseDto {
1261 pub id: String,
1264 pub name: String,
1267 #[serde(rename = "editorType")]
1271 pub editor_type: String,
1272 #[serde(rename = "isPlainText")]
1275 pub is_plain_text: bool,
1276 #[serde(
1278 rename = "parentFolderId",
1279 default,
1280 skip_serializing_if = "Option::is_none"
1281 )]
1282 pub parent_folder_id: Option<String>,
1283 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1285 pub from_name: Option<String>,
1286 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1288 pub from_email: Option<String>,
1289 #[serde(
1291 rename = "subjectLine",
1292 default,
1293 skip_serializing_if = "Option::is_none"
1294 )]
1295 pub subject_line: Option<String>,
1296 #[serde(
1298 rename = "previewText",
1299 default,
1300 skip_serializing_if = "Option::is_none"
1301 )]
1302 pub preview_text: Option<String>,
1303 #[serde(
1305 rename = "previewUrl",
1306 default,
1307 skip_serializing_if = "Option::is_none"
1308 )]
1309 pub preview_url: Option<String>,
1310 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1312 pub created_at: Option<String>,
1313 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1315 pub updated_at: Option<String>,
1316 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1318 pub trace_id: Option<String>,
1319}
1320
1321#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1323pub struct InvalidLocationDTO {
1324 #[serde(
1326 rename = "statusCode",
1327 default,
1328 skip_serializing_if = "Option::is_none"
1329 )]
1330 pub status_code: Option<f64>,
1331 #[serde(default, skip_serializing_if = "Option::is_none")]
1333 pub message: Option<String>,
1334}
1335
1336#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1338pub struct ListBulkActionCampaignsPublicV2ResponseDto {
1339 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1342 pub campaigns: Vec<BulkActionCampaignPublicV2Dto>,
1343 pub total: f64,
1346 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1348 pub trace_id: Option<String>,
1349}
1350
1351#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1353pub struct ListEmailCampaignsPublicV2ResponseDto {
1354 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1357 pub campaigns: Vec<EmailCampaignPublicV2Dto>,
1358 pub total: f64,
1361 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1363 pub trace_id: Option<String>,
1364}
1365
1366#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1368pub struct ListTemplatesPublicV2ResponseDto {
1369 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1372 pub items: Vec<TemplateListItemPublicV2Dto>,
1373 pub total: f64,
1376 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1378 pub trace_id: Option<String>,
1379}
1380
1381#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1383pub struct ListWorkflowCampaignsPublicV2ResponseDto {
1384 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1387 pub campaigns: Vec<WorkflowCampaignPublicV2Dto>,
1388 pub total: f64,
1391 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1393 pub trace_id: Option<String>,
1394}
1395
1396#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1398pub struct NotFoundDTO {
1399 #[serde(
1401 rename = "statusCode",
1402 default,
1403 skip_serializing_if = "Option::is_none"
1404 )]
1405 pub status_code: Option<f64>,
1406 #[serde(default, skip_serializing_if = "Option::is_none")]
1408 pub message: Option<String>,
1409 #[serde(default, skip_serializing_if = "Option::is_none")]
1411 pub error: Option<String>,
1412}
1413
1414#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1416pub struct SaveBuilderDataDto {
1417 #[serde(rename = "locationId")]
1419 pub location_id: String,
1420 #[serde(rename = "templateId")]
1422 pub template_id: String,
1423 #[serde(rename = "updatedBy")]
1425 pub updated_by: String,
1426 pub dnd: IBuilderJsonMapper,
1428 pub html: String,
1430 #[serde(rename = "editorType")]
1433 pub editor_type: String,
1434 #[serde(
1435 rename = "previewText",
1436 default,
1437 skip_serializing_if = "Option::is_none"
1438 )]
1439 pub preview_text: Option<String>,
1440 #[serde(
1441 rename = "isPlainText",
1442 default,
1443 skip_serializing_if = "Option::is_none"
1444 )]
1445 pub is_plain_text: Option<bool>,
1446 #[serde(
1448 rename = "usedEmailAI",
1449 default,
1450 skip_serializing_if = "Option::is_none"
1451 )]
1452 pub used_email_ai: Option<bool>,
1453}
1454
1455#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1457pub struct ScheduleCampaignABTestConfigPublicV2Dto {
1458 #[serde(rename = "testType")]
1462 pub test_type: String,
1463 #[serde(rename = "testDuration")]
1466 pub test_duration: f64,
1467 #[serde(rename = "variationCount")]
1470 pub variation_count: f64,
1471 #[serde(rename = "testSize")]
1474 pub test_size: f64,
1475 #[serde(rename = "winningCriteria")]
1479 pub winning_criteria: String,
1480 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1483 pub variations: Vec<ScheduleCampaignABTestVariationPublicV2Dto>,
1484}
1485
1486#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1488pub struct ScheduleCampaignABTestVariationPublicV2Dto {
1489 #[serde(default, skip_serializing_if = "Option::is_none")]
1491 pub subject: Option<String>,
1492 #[serde(
1494 rename = "documentId",
1495 default,
1496 skip_serializing_if = "Option::is_none"
1497 )]
1498 pub document_id: Option<String>,
1499}
1500
1501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1503pub struct ScheduleCampaignBatchConfigPublicV2Dto {
1504 #[serde(rename = "batchSize")]
1507 pub batch_size: f64,
1508 pub interval: f64,
1511 #[serde(rename = "intervalUnit")]
1515 pub interval_unit: String,
1516 #[serde(rename = "skipDays", default, skip_serializing_if = "Vec::is_empty")]
1519 pub skip_days: Vec<String>,
1520 #[serde(
1522 rename = "windowStart",
1523 default,
1524 skip_serializing_if = "Option::is_none"
1525 )]
1526 pub window_start: Option<String>,
1527 #[serde(rename = "windowEnd", default, skip_serializing_if = "Option::is_none")]
1529 pub window_end: Option<String>,
1530}
1531
1532#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1534pub struct ScheduleCampaignEmailMetaPublicV2Dto {
1535 pub subject: String,
1538 #[serde(rename = "fromName")]
1541 pub from_name: String,
1542 #[serde(rename = "fromEmail")]
1545 pub from_email: String,
1546 #[serde(
1548 rename = "replyToAddress",
1549 default,
1550 skip_serializing_if = "Option::is_none"
1551 )]
1552 pub reply_to_address: Option<String>,
1553 #[serde(
1555 rename = "previewText",
1556 default,
1557 skip_serializing_if = "Option::is_none"
1558 )]
1559 pub preview_text: Option<String>,
1560 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1562 pub attachments: Vec<String>,
1563}
1564
1565#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1567pub struct ScheduleCampaignPublicV2BodyDto {
1568 #[serde(rename = "scheduleType")]
1572 pub schedule_type: String,
1573 #[serde(rename = "timeZone")]
1576 pub time_zone: String,
1577 #[serde(rename = "userId")]
1580 pub user_id: String,
1581 #[serde(rename = "userName", default, skip_serializing_if = "Option::is_none")]
1583 pub user_name: Option<String>,
1584 #[serde(rename = "emailMeta")]
1587 pub email_meta: ScheduleCampaignEmailMetaPublicV2Dto,
1588 pub recipients: ScheduleCampaignRecipientsPublicV2Dto,
1591 #[serde(rename = "sendDays", default, skip_serializing_if = "Vec::is_empty")]
1594 pub send_days: Vec<String>,
1595 #[serde(
1598 rename = "scheduleConfig",
1599 default,
1600 skip_serializing_if = "Option::is_none"
1601 )]
1602 pub schedule_config: Option<ScheduleCampaignScheduleConfigPublicV2Dto>,
1603 #[serde(rename = "rssConfig", default, skip_serializing_if = "Option::is_none")]
1605 pub rss_config: Option<ScheduleCampaignRssConfigPublicV2Dto>,
1606 #[serde(
1608 rename = "abTestConfig",
1609 default,
1610 skip_serializing_if = "Option::is_none"
1611 )]
1612 pub ab_test_config: Option<ScheduleCampaignABTestConfigPublicV2Dto>,
1613}
1614
1615#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1617pub struct ScheduleCampaignPublicV2ResponseDto {
1618 #[serde(rename = "campaignId")]
1621 pub campaign_id: String,
1622 #[serde(rename = "sourceId")]
1625 pub source_id: String,
1626 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1628 pub trace_id: Option<String>,
1629}
1630
1631#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1633pub struct ScheduleCampaignRecipientsPublicV2Dto {
1634 #[serde(rename = "type")]
1638 pub type_: String,
1639 #[serde(rename = "contactIds", default, skip_serializing_if = "Vec::is_empty")]
1641 pub contact_ids: Vec<String>,
1642 #[serde(rename = "tagIds", default, skip_serializing_if = "Vec::is_empty")]
1644 pub tag_ids: Vec<String>,
1645 #[serde(default, skip_serializing_if = "Option::is_none")]
1649 pub segment: Option<String>,
1650 #[serde(
1652 rename = "freezeList",
1653 default,
1654 skip_serializing_if = "Option::is_none"
1655 )]
1656 pub freeze_list: Option<bool>,
1657}
1658
1659#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1661pub struct ScheduleCampaignResendPublicV2Dto {
1662 #[serde(default, skip_serializing_if = "Option::is_none")]
1664 pub enabled: Option<bool>,
1665 #[serde(rename = "waitHours", default, skip_serializing_if = "Option::is_none")]
1667 pub wait_hours: Option<f64>,
1668 #[serde(default, skip_serializing_if = "Option::is_none")]
1670 pub subject: Option<String>,
1671}
1672
1673#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1675pub struct ScheduleCampaignRssConfigPublicV2Dto {
1676 pub name: String,
1679 #[serde(rename = "rssFeedURL")]
1682 pub rss_feed_url: String,
1683 #[serde(rename = "repeatAfter")]
1687 pub repeat_after: String,
1688 #[serde(rename = "repeatAfterTime")]
1691 pub repeat_after_time: String,
1692 #[serde(
1694 rename = "rssFeedLimit",
1695 default,
1696 skip_serializing_if = "Option::is_none"
1697 )]
1698 pub rss_feed_limit: Option<f64>,
1699 #[serde(
1703 rename = "startAtDay",
1704 default,
1705 skip_serializing_if = "Option::is_none"
1706 )]
1707 pub start_at_day: Option<String>,
1708 #[serde(
1710 rename = "startAtMonthDay",
1711 default,
1712 skip_serializing_if = "Option::is_none"
1713 )]
1714 pub start_at_month_day: Option<String>,
1715 #[serde(
1717 rename = "firstExecutionDate",
1718 default,
1719 skip_serializing_if = "Option::is_none"
1720 )]
1721 pub first_execution_date: Option<String>,
1722}
1723
1724#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1726pub struct ScheduleCampaignScheduleConfigPublicV2Dto {
1727 #[serde(rename = "sendAt", default, skip_serializing_if = "Option::is_none")]
1729 pub send_at: Option<String>,
1730 #[serde(default, skip_serializing_if = "Option::is_none")]
1732 pub batch: Option<ScheduleCampaignBatchConfigPublicV2Dto>,
1733 #[serde(default, skip_serializing_if = "Option::is_none")]
1735 pub tracking: Option<ScheduleCampaignTrackingPublicV2Dto>,
1736 #[serde(default, skip_serializing_if = "Option::is_none")]
1738 pub resend: Option<ScheduleCampaignResendPublicV2Dto>,
1739 #[serde(
1741 rename = "emailPreferenceId",
1742 default,
1743 skip_serializing_if = "Option::is_none"
1744 )]
1745 pub email_preference_id: Option<String>,
1746}
1747
1748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1750pub struct ScheduleCampaignTrackingPublicV2Dto {
1751 #[serde(
1753 rename = "clickTracking",
1754 default,
1755 skip_serializing_if = "Option::is_none"
1756 )]
1757 pub click_tracking: Option<bool>,
1758 #[serde(
1760 rename = "utmTracking",
1761 default,
1762 skip_serializing_if = "Option::is_none"
1763 )]
1764 pub utm_tracking: Option<bool>,
1765}
1766
1767#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1769pub struct ScheduleDto {
1770 pub name: String,
1772 #[serde(rename = "repeatAfter")]
1774 pub repeat_after: String,
1775 pub id: String,
1777 #[serde(rename = "parentId")]
1779 pub parent_id: String,
1780 #[serde(rename = "childCount")]
1782 pub child_count: f64,
1783 #[serde(rename = "campaignType")]
1785 pub campaign_type: String,
1786 #[serde(rename = "bulkActionVersion")]
1788 pub bulk_action_version: String,
1789 #[serde(rename = "_id")]
1791 pub id_alt: String,
1792 pub status: String,
1794 #[serde(rename = "sendDays", default, skip_serializing_if = "Vec::is_empty")]
1796 pub send_days: Vec<String>,
1797 pub deleted: bool,
1799 pub migrated: bool,
1801 pub archived: bool,
1803 #[serde(rename = "hasTracking")]
1805 pub has_tracking: bool,
1806 #[serde(rename = "isPlainText")]
1808 pub is_plain_text: bool,
1809 #[serde(rename = "hasUtmTracking")]
1811 pub has_utm_tracking: bool,
1812 #[serde(rename = "enableResendToUnopened")]
1814 pub enable_resend_to_unopened: bool,
1815 #[serde(rename = "locationId")]
1817 pub location_id: String,
1818 #[serde(rename = "templateId")]
1820 pub template_id: String,
1821 #[serde(rename = "templateType")]
1823 pub template_type: String,
1824 #[serde(rename = "createdAt")]
1826 pub created_at: String,
1827 #[serde(rename = "updatedAt")]
1829 pub updated_at: String,
1830 #[serde(rename = "__v")]
1832 pub v: f64,
1833 #[serde(rename = "documentId")]
1835 pub document_id: String,
1836 #[serde(rename = "downloadUrl")]
1838 pub download_url: String,
1839 #[serde(rename = "templateDataDownloadUrl")]
1841 pub template_data_download_url: String,
1842 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1844 pub child: Vec<String>,
1845}
1846
1847#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1849pub struct ScheduleFetchSuccessfulDTO {
1850 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1853 pub schedules: Vec<ScheduleDto>,
1854 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1857 pub total: Vec<String>,
1858 #[serde(rename = "traceId")]
1861 pub trace_id: String,
1862}
1863
1864#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1866pub struct TemplateListItemPublicV2Dto {
1867 pub id: String,
1870 pub name: String,
1873 #[serde(rename = "type")]
1877 pub type_: String,
1878 #[serde(
1880 rename = "isPlainText",
1881 default,
1882 skip_serializing_if = "Option::is_none"
1883 )]
1884 pub is_plain_text: Option<bool>,
1885 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1887 pub updated_at: Option<String>,
1888 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1890 pub created_at: Option<String>,
1891 #[serde(
1893 rename = "previewUrl",
1894 default,
1895 skip_serializing_if = "Option::is_none"
1896 )]
1897 pub preview_url: Option<String>,
1898 #[serde(
1901 rename = "editorType",
1902 default,
1903 skip_serializing_if = "Option::is_none"
1904 )]
1905 pub editor_type: Option<String>,
1906 #[serde(
1908 rename = "childCount",
1909 default,
1910 skip_serializing_if = "Option::is_none"
1911 )]
1912 pub child_count: Option<f64>,
1913 #[serde(
1915 rename = "hasChildren",
1916 default,
1917 skip_serializing_if = "Option::is_none"
1918 )]
1919 pub has_children: Option<bool>,
1920 #[serde(
1922 rename = "parentFolderId",
1923 default,
1924 skip_serializing_if = "Option::is_none"
1925 )]
1926 pub parent_folder_id: Option<String>,
1927}
1928
1929#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1931pub struct TemplateSettings {
1932 #[serde(flatten)]
1934 pub extra: serde_json::Map<String, serde_json::Value>,
1935}
1936
1937#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1939pub struct UpdateEmailCampaignPublicV2BodyDto {
1940 #[serde(default, skip_serializing_if = "Option::is_none")]
1942 pub name: Option<String>,
1943 #[serde(
1946 rename = "editorContent",
1947 default,
1948 skip_serializing_if = "Option::is_none"
1949 )]
1950 pub editor_content: Option<String>,
1951 #[serde(
1955 rename = "editorType",
1956 default,
1957 skip_serializing_if = "Option::is_none"
1958 )]
1959 pub editor_type: Option<String>,
1960 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
1962 pub user_id: Option<String>,
1963}
1964
1965#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1967pub struct UpdateEmailCampaignPublicV2ResponseDto {
1968 pub id: String,
1971 #[serde(default, skip_serializing_if = "Option::is_none")]
1973 pub source: Option<String>,
1974 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1976 pub source_id: Option<String>,
1977 #[serde(default, skip_serializing_if = "Option::is_none")]
1979 pub name: Option<String>,
1980 #[serde(default, skip_serializing_if = "Option::is_none")]
1984 pub status: Option<String>,
1985 #[serde(
1987 rename = "campaignType",
1988 default,
1989 skip_serializing_if = "Option::is_none"
1990 )]
1991 pub campaign_type: Option<String>,
1992 #[serde(
1994 rename = "campaignCategory",
1995 default,
1996 skip_serializing_if = "Option::is_none"
1997 )]
1998 pub campaign_category: Option<String>,
1999 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2001 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
2002 pub deleted: bool,
2005 #[serde(rename = "createdAt")]
2008 pub created_at: String,
2009 #[serde(rename = "updatedAt")]
2012 pub updated_at: String,
2013 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
2015 pub trace_id: Option<String>,
2016}
2017
2018#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2020pub struct UpdateEmailTemplateDto {
2021 #[serde(rename = "locationId")]
2024 pub location_id: String,
2025 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
2027 pub updated_by: Option<String>,
2028 #[serde(
2034 rename = "editorContent",
2035 default,
2036 skip_serializing_if = "Option::is_none"
2037 )]
2038 pub editor_content: Option<serde_json::Value>,
2039 #[serde(
2044 rename = "editorType",
2045 default,
2046 skip_serializing_if = "Option::is_none"
2047 )]
2048 pub editor_type: Option<String>,
2049 #[serde(
2051 rename = "previewText",
2052 default,
2053 skip_serializing_if = "Option::is_none"
2054 )]
2055 pub preview_text: Option<String>,
2056 #[serde(
2058 rename = "subjectLine",
2059 default,
2060 skip_serializing_if = "Option::is_none"
2061 )]
2062 pub subject_line: Option<String>,
2063 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2065 pub from_name: Option<String>,
2066 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2068 pub from_email: Option<String>,
2069 #[serde(default, skip_serializing_if = "Option::is_none")]
2071 pub name: Option<String>,
2072 #[serde(default, skip_serializing_if = "Option::is_none")]
2074 pub archived: Option<bool>,
2075 #[serde(
2078 rename = "fieldDefaults",
2079 default,
2080 skip_serializing_if = "Option::is_none"
2081 )]
2082 pub field_defaults: Option<serde_json::Value>,
2083}
2084
2085#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2087pub struct UpdateEmailTemplateResponseDto {
2088 pub ok: bool,
2091 pub id: String,
2094 pub name: String,
2097 pub archived: bool,
2100 #[serde(rename = "builderVersion")]
2103 pub builder_version: String,
2104 #[serde(rename = "fromName")]
2107 pub from_name: String,
2108 #[serde(rename = "fromEmail")]
2111 pub from_email: String,
2112 #[serde(rename = "subjectLine")]
2115 pub subject_line: String,
2116 #[serde(rename = "previewText")]
2119 pub preview_text: String,
2120 #[serde(rename = "previewUrl")]
2123 pub preview_url: String,
2124 #[serde(rename = "type")]
2128 pub type_: String,
2129 #[serde(rename = "lastUpdated")]
2132 pub last_updated: String,
2133 #[serde(rename = "createdAt")]
2136 pub created_at: String,
2137 #[serde(rename = "isPlainText")]
2140 pub is_plain_text: bool,
2141 #[serde(
2143 rename = "fieldDefaults",
2144 default,
2145 skip_serializing_if = "Option::is_none"
2146 )]
2147 pub field_defaults: Option<serde_json::Value>,
2148}
2149
2150#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2152pub struct UpdateTemplatePublicV2BodyDto {
2153 #[serde(default, skip_serializing_if = "Option::is_none")]
2155 pub name: Option<String>,
2156 #[serde(
2159 rename = "editorContent",
2160 default,
2161 skip_serializing_if = "Option::is_none"
2162 )]
2163 pub editor_content: Option<String>,
2164 #[serde(
2168 rename = "editorType",
2169 default,
2170 skip_serializing_if = "Option::is_none"
2171 )]
2172 pub editor_type: Option<String>,
2173 #[serde(
2175 rename = "previewText",
2176 default,
2177 skip_serializing_if = "Option::is_none"
2178 )]
2179 pub preview_text: Option<String>,
2180 #[serde(
2182 rename = "subjectLine",
2183 default,
2184 skip_serializing_if = "Option::is_none"
2185 )]
2186 pub subject_line: Option<String>,
2187 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2189 pub from_name: Option<String>,
2190 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2192 pub from_email: Option<String>,
2193 #[serde(default, skip_serializing_if = "Option::is_none")]
2195 pub archived: Option<bool>,
2196 #[serde(
2198 rename = "parentFolderId",
2199 default,
2200 skip_serializing_if = "Option::is_none"
2201 )]
2202 pub parent_folder_id: Option<String>,
2203 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2205 pub user_id: Option<String>,
2206}
2207
2208#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2210pub struct UpdateTemplatePublicV2ResponseDto {
2211 pub id: String,
2214 pub name: String,
2217 pub archived: bool,
2220 #[serde(rename = "fromName")]
2223 pub from_name: String,
2224 #[serde(rename = "fromEmail")]
2227 pub from_email: String,
2228 #[serde(rename = "subjectLine")]
2231 pub subject_line: String,
2232 #[serde(rename = "previewText")]
2235 pub preview_text: String,
2236 #[serde(rename = "previewUrl")]
2239 pub preview_url: String,
2240 #[serde(
2243 rename = "editorType",
2244 default,
2245 skip_serializing_if = "Option::is_none"
2246 )]
2247 pub editor_type: Option<String>,
2248 #[serde(
2250 rename = "isPlainText",
2251 default,
2252 skip_serializing_if = "Option::is_none"
2253 )]
2254 pub is_plain_text: Option<bool>,
2255 #[serde(
2257 rename = "parentFolderId",
2258 default,
2259 skip_serializing_if = "Option::is_none"
2260 )]
2261 pub parent_folder_id: Option<String>,
2262 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2264 pub updated_at: Option<String>,
2265 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2267 pub created_at: Option<String>,
2268 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
2270 pub trace_id: Option<String>,
2271}
2272
2273#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2275pub struct WorkflowCampaignPublicDto {
2276 pub id: String,
2279 pub name: String,
2282 pub status: String,
2286 #[serde(rename = "sourceId")]
2289 pub source_id: String,
2290 pub deleted: bool,
2293 #[serde(rename = "createdAt")]
2296 pub created_at: String,
2297 #[serde(rename = "updatedAt")]
2300 pub updated_at: String,
2301}
2302
2303#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2305pub struct WorkflowCampaignPublicV2Dto {
2306 pub id: String,
2309 #[serde(default, skip_serializing_if = "Option::is_none")]
2311 pub name: Option<String>,
2312 #[serde(default, skip_serializing_if = "Option::is_none")]
2315 pub status: Option<String>,
2316 #[serde(default, skip_serializing_if = "Option::is_none")]
2318 pub source: Option<String>,
2319 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
2321 pub source_id: Option<String>,
2322 #[serde(default, skip_serializing_if = "Option::is_none")]
2324 pub deleted: Option<bool>,
2325 #[serde(rename = "createdAt")]
2328 pub created_at: String,
2329 #[serde(rename = "updatedAt")]
2332 pub updated_at: String,
2333}
2334
2335#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2337pub struct WorkflowCampaignSubSourcePublicV2Dto {
2338 pub id: String,
2342 #[serde(default, skip_serializing_if = "Option::is_none")]
2344 pub name: Option<String>,
2345 #[serde(default, skip_serializing_if = "Option::is_none")]
2347 pub subject: Option<String>,
2348 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2350 pub from_name: Option<String>,
2351 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2353 pub from_email: Option<String>,
2354 #[serde(
2356 rename = "previewText",
2357 default,
2358 skip_serializing_if = "Option::is_none"
2359 )]
2360 pub preview_text: Option<String>,
2361 #[serde(
2364 rename = "editorType",
2365 default,
2366 skip_serializing_if = "Option::is_none"
2367 )]
2368 pub editor_type: Option<String>,
2369 #[serde(
2371 rename = "isPlainText",
2372 default,
2373 skip_serializing_if = "Option::is_none"
2374 )]
2375 pub is_plain_text: Option<bool>,
2376 #[serde(
2379 rename = "editorContentUrl",
2380 default,
2381 skip_serializing_if = "Option::is_none"
2382 )]
2383 pub editor_content_url: Option<String>,
2384 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2386 pub created_at: Option<String>,
2387 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2389 pub updated_at: Option<String>,
2390}