1#![allow(
6 missing_docs,
7 clippy::doc_lazy_continuation,
8 clippy::doc_overindented_list_items
9)]
10
11use serde::{Deserialize, Serialize};
12
13#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15pub struct BuilderAttributePublicV2Dto {
16 pub name: String,
19 #[serde(default, skip_serializing_if = "Option::is_none")]
21 pub default: Option<serde_json::Value>,
22 #[serde(default, skip_serializing_if = "Option::is_none")]
24 pub unit: Option<String>,
25}
26
27#[derive(Debug, Clone, Default, Serialize, Deserialize)]
29pub struct BuilderCustomFlagsPublicV2Dto {
30 #[serde(rename = "layoutId", default, skip_serializing_if = "Option::is_none")]
32 pub layout_id: Option<serde_json::Value>,
33 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub theme: Option<String>,
36 #[serde(
39 rename = "socialElementType",
40 default,
41 skip_serializing_if = "Option::is_none"
42 )]
43 pub social_element_type: Option<String>,
44}
45
46#[derive(Debug, Clone, Default, Serialize, Deserialize)]
48pub struct BuilderEditorContentPublicV2Dto {
49 #[serde(default, skip_serializing_if = "Vec::is_empty")]
51 pub elements: Vec<BuilderElementNodePublicV2Dto>,
52 #[serde(default, skip_serializing_if = "Option::is_none")]
54 pub attrs: Option<serde_json::Value>,
55 #[serde(
57 rename = "templateSettings",
58 default,
59 skip_serializing_if = "Option::is_none"
60 )]
61 pub template_settings: Option<serde_json::Value>,
62}
63
64#[derive(Debug, Clone, Default, Serialize, Deserialize)]
66pub struct BuilderElementNodePublicV2Dto {
67 pub id: String,
70 #[serde(rename = "tagName")]
73 pub tag_name: String,
74 #[serde(default, skip_serializing_if = "Vec::is_empty")]
76 pub children: Vec<BuilderElementNodePublicV2Dto>,
77}
78
79#[derive(Debug, Clone, Default, Serialize, Deserialize)]
81pub struct BuilderNodeAttrsPublicV2Dto {
82 #[serde(rename = "tagName")]
85 pub tag_name: String,
86 #[serde(default, skip_serializing_if = "Vec::is_empty")]
89 pub attributes: Vec<BuilderAttributePublicV2Dto>,
90 #[serde(default, skip_serializing_if = "Option::is_none")]
92 pub content: Option<String>,
93 #[serde(
95 rename = "customFlags",
96 default,
97 skip_serializing_if = "Option::is_none"
98 )]
99 pub custom_flags: Option<BuilderCustomFlagsPublicV2Dto>,
100}
101
102#[derive(Debug, Clone, Default, Serialize, Deserialize)]
104pub struct BuilderUpdateSuccessfulDTO {
105 #[serde(default, skip_serializing_if = "Option::is_none")]
107 pub ok: Option<String>,
108 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
110 pub trace_id: Option<String>,
111 #[serde(
113 rename = "previewUrl",
114 default,
115 skip_serializing_if = "Option::is_none"
116 )]
117 pub preview_url: Option<String>,
118 #[serde(
120 rename = "templateDownloadUrl",
121 default,
122 skip_serializing_if = "Option::is_none"
123 )]
124 pub template_download_url: Option<String>,
125 #[serde(rename = "versionId", default, skip_serializing_if = "Option::is_none")]
127 pub version_id: Option<String>,
128}
129
130#[derive(Debug, Clone, Default, Serialize, Deserialize)]
132pub struct BulkActionCampaignDto {
133 pub id: String,
136 pub name: String,
139 pub status: String,
143 #[serde(rename = "scheduleType")]
146 pub schedule_type: String,
147 #[serde(rename = "createdBy")]
150 pub created_by: String,
151 pub deleted: bool,
154 #[serde(rename = "createdAt")]
157 pub created_at: String,
158 #[serde(rename = "updatedAt")]
161 pub updated_at: String,
162 #[serde(
164 rename = "completedAt",
165 default,
166 skip_serializing_if = "Option::is_none"
167 )]
168 pub completed_at: Option<String>,
169 #[serde(
171 rename = "emailMetadata",
172 default,
173 skip_serializing_if = "Option::is_none"
174 )]
175 pub email_metadata: Option<BulkActionCampaignEmailDetailsDto>,
176}
177
178#[derive(Debug, Clone, Default, Serialize, Deserialize)]
180pub struct BulkActionCampaignEmailDetailsDto {
181 #[serde(default, skip_serializing_if = "Option::is_none")]
183 pub subject: Option<String>,
184 #[serde(rename = "from", default, skip_serializing_if = "Option::is_none")]
186 pub from_: Option<String>,
187 #[serde(default, skip_serializing_if = "Option::is_none")]
189 pub name: Option<String>,
190 #[serde(
192 rename = "templateId",
193 default,
194 skip_serializing_if = "Option::is_none"
195 )]
196 pub template_id: Option<String>,
197}
198
199#[derive(Debug, Clone, Default, Serialize, Deserialize)]
201pub struct BulkActionCampaignPublicV2Dto {
202 pub id: String,
205 #[serde(default, skip_serializing_if = "Option::is_none")]
207 pub source: Option<String>,
208 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
210 pub source_id: Option<String>,
211 #[serde(default, skip_serializing_if = "Option::is_none")]
213 pub name: Option<String>,
214 pub status: String,
218 #[serde(
221 rename = "scheduleType",
222 default,
223 skip_serializing_if = "Option::is_none"
224 )]
225 pub schedule_type: Option<String>,
226 pub deleted: bool,
229 #[serde(rename = "createdAt")]
232 pub created_at: String,
233 #[serde(rename = "updatedAt")]
236 pub updated_at: String,
237 #[serde(
239 rename = "completedAt",
240 default,
241 skip_serializing_if = "Option::is_none"
242 )]
243 pub completed_at: Option<String>,
244 #[serde(
246 rename = "emailMetadata",
247 default,
248 skip_serializing_if = "Option::is_none"
249 )]
250 pub email_metadata: Option<BulkActionCampaignEmailDetailsDto>,
251}
252
253#[derive(Debug, Clone, Default, Serialize, Deserialize)]
255pub struct CreateBuilderDto {
256 #[serde(rename = "locationId")]
258 pub location_id: String,
259 #[serde(default, skip_serializing_if = "Option::is_none")]
260 pub title: Option<String>,
261 #[serde(rename = "type")]
265 pub type_: String,
266 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
267 pub updated_by: Option<String>,
268 #[serde(
270 rename = "builderVersion",
271 default,
272 skip_serializing_if = "Option::is_none"
273 )]
274 pub builder_version: Option<String>,
275 #[serde(default, skip_serializing_if = "Option::is_none")]
276 pub name: Option<String>,
277 #[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
278 pub parent_id: Option<String>,
279 #[serde(
280 rename = "templateDataUrl",
281 default,
282 skip_serializing_if = "Option::is_none"
283 )]
284 pub template_data_url: Option<String>,
285 #[serde(rename = "importProvider")]
289 pub import_provider: String,
290 #[serde(rename = "importURL", default, skip_serializing_if = "Option::is_none")]
291 pub import_url: Option<String>,
292 #[serde(
293 rename = "templateSource",
294 default,
295 skip_serializing_if = "Option::is_none"
296 )]
297 pub template_source: Option<String>,
298 #[serde(
299 rename = "isPlainText",
300 default,
301 skip_serializing_if = "Option::is_none"
302 )]
303 pub is_plain_text: Option<bool>,
304 #[serde(
305 rename = "subjectLine",
306 default,
307 skip_serializing_if = "Option::is_none"
308 )]
309 pub subject_line: Option<String>,
310 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
311 pub from_name: Option<String>,
312 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
313 pub from_email: Option<String>,
314 #[serde(
315 rename = "previewText",
316 default,
317 skip_serializing_if = "Option::is_none"
318 )]
319 pub preview_text: Option<String>,
320}
321
322#[derive(Debug, Clone, Default, Serialize, Deserialize)]
324pub struct CreateBuilderSuccesfulResponseDto {
325 pub redirect: String,
328 #[serde(rename = "traceId")]
331 pub trace_id: String,
332}
333
334#[derive(Debug, Clone, Default, Serialize, Deserialize)]
336pub struct CreateEmailCampaignPublicV2BodyDto {
337 pub name: String,
340 #[serde(rename = "editorType")]
345 pub editor_type: String,
346 #[serde(
349 rename = "templateId",
350 default,
351 skip_serializing_if = "Option::is_none"
352 )]
353 pub template_id: Option<String>,
354 #[serde(
357 rename = "editorContent",
358 default,
359 skip_serializing_if = "Option::is_none"
360 )]
361 pub editor_content: Option<String>,
362 #[serde(
364 rename = "parentFolderId",
365 default,
366 skip_serializing_if = "Option::is_none"
367 )]
368 pub parent_folder_id: Option<String>,
369 #[serde(rename = "timeZone")]
372 pub time_zone: String,
373 #[serde(rename = "userId")]
376 pub user_id: String,
377 #[serde(rename = "userName", default, skip_serializing_if = "Option::is_none")]
379 pub user_name: Option<String>,
380}
381
382#[derive(Debug, Clone, Default, Serialize, Deserialize)]
384pub struct CreateEmailCampaignPublicV2ResponseDto {
385 pub id: String,
388 #[serde(default, skip_serializing_if = "Option::is_none")]
390 pub source: Option<String>,
391 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
393 pub source_id: Option<String>,
394 #[serde(default, skip_serializing_if = "Option::is_none")]
396 pub name: Option<String>,
397 #[serde(default, skip_serializing_if = "Option::is_none")]
401 pub status: Option<String>,
402 #[serde(
404 rename = "campaignType",
405 default,
406 skip_serializing_if = "Option::is_none"
407 )]
408 pub campaign_type: Option<String>,
409 #[serde(
411 rename = "campaignCategory",
412 default,
413 skip_serializing_if = "Option::is_none"
414 )]
415 pub campaign_category: Option<String>,
416 #[serde(default, skip_serializing_if = "Vec::is_empty")]
418 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
419 pub deleted: bool,
422 #[serde(rename = "createdAt")]
425 pub created_at: String,
426 #[serde(rename = "updatedAt")]
429 pub updated_at: String,
430 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
432 pub trace_id: Option<String>,
433}
434
435#[derive(Debug, Clone, Default, Serialize, Deserialize)]
437pub struct CreateTemplateFolderPublicV2BodyDto {
438 pub name: String,
441 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
443 pub user_id: Option<String>,
444}
445
446#[derive(Debug, Clone, Default, Serialize, Deserialize)]
448pub struct CreateTemplateFolderPublicV2ResponseDto {
449 pub id: String,
452 pub name: String,
455 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
457 pub created_at: Option<String>,
458 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
460 pub updated_at: Option<String>,
461 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
463 pub trace_id: Option<String>,
464}
465
466#[derive(Debug, Clone, Default, Serialize, Deserialize)]
468pub struct CreateTemplatePublicV2BodyDto {
469 pub name: String,
472 #[serde(rename = "editorType")]
477 pub editor_type: String,
478 #[serde(
480 rename = "editorContent",
481 default,
482 skip_serializing_if = "Option::is_none"
483 )]
484 pub editor_content: Option<String>,
485 #[serde(
487 rename = "parentFolderId",
488 default,
489 skip_serializing_if = "Option::is_none"
490 )]
491 pub parent_folder_id: Option<String>,
492 #[serde(
494 rename = "subjectLine",
495 default,
496 skip_serializing_if = "Option::is_none"
497 )]
498 pub subject_line: Option<String>,
499 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
501 pub from_name: Option<String>,
502 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
504 pub from_email: Option<String>,
505 #[serde(
507 rename = "previewText",
508 default,
509 skip_serializing_if = "Option::is_none"
510 )]
511 pub preview_text: Option<String>,
512 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
514 pub user_id: Option<String>,
515}
516
517#[derive(Debug, Clone, Default, Serialize, Deserialize)]
519pub struct CreateTemplatePublicV2ResponseDto {
520 pub id: String,
523 pub name: String,
526 #[serde(rename = "editorType")]
530 pub editor_type: String,
531 #[serde(rename = "isPlainText")]
534 pub is_plain_text: bool,
535 #[serde(
537 rename = "parentFolderId",
538 default,
539 skip_serializing_if = "Option::is_none"
540 )]
541 pub parent_folder_id: Option<String>,
542 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
544 pub from_name: Option<String>,
545 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
547 pub from_email: Option<String>,
548 #[serde(
550 rename = "subjectLine",
551 default,
552 skip_serializing_if = "Option::is_none"
553 )]
554 pub subject_line: Option<String>,
555 #[serde(
557 rename = "previewText",
558 default,
559 skip_serializing_if = "Option::is_none"
560 )]
561 pub preview_text: Option<String>,
562 #[serde(
564 rename = "previewUrl",
565 default,
566 skip_serializing_if = "Option::is_none"
567 )]
568 pub preview_url: Option<String>,
569 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
571 pub created_at: Option<String>,
572 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
574 pub updated_at: Option<String>,
575 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
577 pub trace_id: Option<String>,
578}
579
580#[derive(Debug, Clone, Default, Serialize, Deserialize)]
582pub struct DeleteBuilderSuccesfulResponseDto {
583 #[serde(default, skip_serializing_if = "Option::is_none")]
585 pub ok: Option<String>,
586 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
588 pub trace_id: Option<String>,
589}
590
591#[derive(Debug, Clone, Default, Serialize, Deserialize)]
593pub struct DeleteCampaignPublicV2ResponseDto {
594 pub deleted: bool,
597 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
599 pub trace_id: Option<String>,
600}
601
602#[derive(Debug, Clone, Default, Serialize, Deserialize)]
604pub struct DeleteTemplatePublicV2ResponseDto {
605 pub deleted: bool,
608 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
610 pub trace_id: Option<String>,
611}
612
613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
615pub struct EmailCampaignPublicV2Dto {
616 pub id: String,
619 #[serde(default, skip_serializing_if = "Option::is_none")]
621 pub source: Option<String>,
622 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
624 pub source_id: Option<String>,
625 #[serde(default, skip_serializing_if = "Option::is_none")]
627 pub name: Option<String>,
628 #[serde(default, skip_serializing_if = "Option::is_none")]
632 pub status: Option<String>,
633 #[serde(
635 rename = "campaignType",
636 default,
637 skip_serializing_if = "Option::is_none"
638 )]
639 pub campaign_type: Option<String>,
640 #[serde(
642 rename = "campaignCategory",
643 default,
644 skip_serializing_if = "Option::is_none"
645 )]
646 pub campaign_category: Option<String>,
647 #[serde(default, skip_serializing_if = "Vec::is_empty")]
649 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
650 pub deleted: bool,
653 #[serde(rename = "createdAt")]
656 pub created_at: String,
657 #[serde(rename = "updatedAt")]
660 pub updated_at: String,
661}
662
663#[derive(Debug, Clone, Default, Serialize, Deserialize)]
665pub struct EmailCampaignVariationPublicV2Dto {
666 #[serde(rename = "sourceId")]
669 pub source_id: String,
670 #[serde(rename = "isWinner")]
673 pub is_winner: bool,
674}
675
676#[derive(Debug, Clone, Default, Serialize, Deserialize)]
678pub struct EmailStatsNumbersDto {
679 pub delivered: f64,
682 pub opened: f64,
685 pub clicked: f64,
688 pub unsubscribed: f64,
691 pub complained: f64,
694 #[serde(rename = "permanentFail")]
697 pub permanent_fail: f64,
698 #[serde(rename = "temporaryFail")]
701 pub temporary_fail: f64,
702 pub rejected: f64,
705 pub failed: f64,
708 pub replied: f64,
711}
712
713#[derive(Debug, Clone, Default, Serialize, Deserialize)]
715pub struct EmailStatsNumbersPublicV2Dto {
716 pub sent: f64,
719 pub accepted: f64,
722 pub delivered: f64,
725 pub opened: f64,
728 pub clicked: f64,
731 pub unsubscribed: f64,
734 pub complained: f64,
737 #[serde(rename = "permanentFail")]
740 pub permanent_fail: f64,
741 #[serde(rename = "temporaryFail")]
744 pub temporary_fail: f64,
745 pub rejected: f64,
748 pub failed: f64,
751 pub replied: f64,
754 #[serde(rename = "openRate")]
757 pub open_rate: f64,
758 #[serde(rename = "clickRate")]
761 pub click_rate: f64,
762 #[serde(rename = "unsubscribeRate")]
765 pub unsubscribe_rate: f64,
766 #[serde(rename = "complaintRate")]
769 pub complaint_rate: f64,
770 #[serde(rename = "bounceRate")]
773 pub bounce_rate: f64,
774 #[serde(rename = "replyRate")]
777 pub reply_rate: f64,
778}
779
780#[derive(Debug, Clone, Default, Serialize, Deserialize)]
782pub struct FetchBuilderSuccesfulResponseDto {
783 #[serde(default, skip_serializing_if = "Option::is_none")]
785 pub name: Option<String>,
786 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
788 pub updated_by: Option<String>,
789 #[serde(
791 rename = "isPlainText",
792 default,
793 skip_serializing_if = "Option::is_none"
794 )]
795 pub is_plain_text: Option<bool>,
796 #[serde(
798 rename = "lastUpdated",
799 default,
800 skip_serializing_if = "Option::is_none"
801 )]
802 pub last_updated: Option<String>,
803 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
805 pub date_added: Option<String>,
806 #[serde(
808 rename = "previewUrl",
809 default,
810 skip_serializing_if = "Option::is_none"
811 )]
812 pub preview_url: Option<String>,
813 #[serde(default, skip_serializing_if = "Option::is_none")]
815 pub id: Option<String>,
816 #[serde(default, skip_serializing_if = "Option::is_none")]
818 pub version: Option<String>,
819 #[serde(
821 rename = "templateType",
822 default,
823 skip_serializing_if = "Option::is_none"
824 )]
825 pub template_type: Option<String>,
826}
827
828#[derive(Debug, Clone, Default, Serialize, Deserialize)]
830pub struct GetBulkActionCampaignPublicV2ResponseDto {
831 pub id: String,
834 #[serde(default, skip_serializing_if = "Option::is_none")]
836 pub source: Option<String>,
837 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
839 pub source_id: Option<String>,
840 #[serde(default, skip_serializing_if = "Option::is_none")]
842 pub name: Option<String>,
843 pub status: String,
847 #[serde(
850 rename = "scheduleType",
851 default,
852 skip_serializing_if = "Option::is_none"
853 )]
854 pub schedule_type: Option<String>,
855 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
857 pub from_name: Option<String>,
858 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
860 pub from_email: Option<String>,
861 #[serde(default, skip_serializing_if = "Option::is_none")]
863 pub subject: Option<String>,
864 #[serde(
866 rename = "replyToAddress",
867 default,
868 skip_serializing_if = "Option::is_none"
869 )]
870 pub reply_to_address: Option<String>,
871 #[serde(
873 rename = "previewText",
874 default,
875 skip_serializing_if = "Option::is_none"
876 )]
877 pub preview_text: Option<String>,
878 #[serde(
881 rename = "editorType",
882 default,
883 skip_serializing_if = "Option::is_none"
884 )]
885 pub editor_type: Option<String>,
886 #[serde(
888 rename = "isPlainText",
889 default,
890 skip_serializing_if = "Option::is_none"
891 )]
892 pub is_plain_text: Option<bool>,
893 #[serde(
896 rename = "editorContentUrl",
897 default,
898 skip_serializing_if = "Option::is_none"
899 )]
900 pub editor_content_url: Option<String>,
901 pub deleted: bool,
904 #[serde(rename = "createdAt")]
907 pub created_at: String,
908 #[serde(rename = "updatedAt")]
911 pub updated_at: String,
912 #[serde(
914 rename = "completedAt",
915 default,
916 skip_serializing_if = "Option::is_none"
917 )]
918 pub completed_at: Option<String>,
919 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
921 pub trace_id: Option<String>,
922}
923
924#[derive(Debug, Clone, Default, Serialize, Deserialize)]
926pub struct GetBulkActionCampaignsResponseDto {
927 #[serde(default, skip_serializing_if = "Vec::is_empty")]
930 pub campaigns: Vec<BulkActionCampaignDto>,
931 pub total: f64,
934}
935
936#[derive(Debug, Clone, Default, Serialize, Deserialize)]
938pub struct GetCampaignStatsPublicV2ResponseDto {
939 #[serde(rename = "locationId")]
942 pub location_id: String,
943 pub source: String,
947 #[serde(rename = "sourceId")]
950 pub source_id: String,
951 #[serde(
953 rename = "subSourceId",
954 default,
955 skip_serializing_if = "Option::is_none"
956 )]
957 pub sub_source_id: Option<String>,
958 pub stats: EmailStatsNumbersPublicV2Dto,
961 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
963 pub trace_id: Option<String>,
964}
965
966#[derive(Debug, Clone, Default, Serialize, Deserialize)]
968pub struct GetCampaignStatsResponseDto {
969 #[serde(rename = "locationId")]
972 pub location_id: String,
973 pub source: String,
977 #[serde(rename = "sourceId")]
980 pub source_id: String,
981 #[serde(
983 rename = "subSourceId",
984 default,
985 skip_serializing_if = "Option::is_none"
986 )]
987 pub sub_source_id: Option<String>,
988 pub stats: EmailStatsNumbersDto,
991}
992
993#[derive(Debug, Clone, Default, Serialize, Deserialize)]
995pub struct GetEmailCampaignPublicV2ResponseDto {
996 pub id: String,
999 #[serde(default, skip_serializing_if = "Option::is_none")]
1001 pub source: Option<String>,
1002 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1004 pub source_id: Option<String>,
1005 #[serde(default, skip_serializing_if = "Option::is_none")]
1007 pub name: Option<String>,
1008 #[serde(default, skip_serializing_if = "Option::is_none")]
1012 pub status: Option<String>,
1013 #[serde(
1015 rename = "campaignType",
1016 default,
1017 skip_serializing_if = "Option::is_none"
1018 )]
1019 pub campaign_type: Option<String>,
1020 #[serde(
1022 rename = "campaignCategory",
1023 default,
1024 skip_serializing_if = "Option::is_none"
1025 )]
1026 pub campaign_category: Option<String>,
1027 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1029 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
1030 #[serde(
1033 rename = "editorType",
1034 default,
1035 skip_serializing_if = "Option::is_none"
1036 )]
1037 pub editor_type: Option<String>,
1038 #[serde(
1040 rename = "isPlainText",
1041 default,
1042 skip_serializing_if = "Option::is_none"
1043 )]
1044 pub is_plain_text: Option<bool>,
1045 #[serde(
1048 rename = "editorContentUrl",
1049 default,
1050 skip_serializing_if = "Option::is_none"
1051 )]
1052 pub editor_content_url: Option<String>,
1053 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1055 pub from_name: Option<String>,
1056 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1058 pub from_email: Option<String>,
1059 #[serde(default, skip_serializing_if = "Option::is_none")]
1061 pub subject: Option<String>,
1062 #[serde(
1064 rename = "replyToAddress",
1065 default,
1066 skip_serializing_if = "Option::is_none"
1067 )]
1068 pub reply_to_address: Option<String>,
1069 #[serde(
1071 rename = "previewText",
1072 default,
1073 skip_serializing_if = "Option::is_none"
1074 )]
1075 pub preview_text: Option<String>,
1076 pub deleted: bool,
1079 #[serde(rename = "createdAt")]
1082 pub created_at: String,
1083 #[serde(rename = "updatedAt")]
1086 pub updated_at: String,
1087 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1089 pub trace_id: Option<String>,
1090}
1091
1092#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1094pub struct GetTemplatePublicV2ResponseDto {
1095 pub id: String,
1098 pub name: String,
1101 #[serde(rename = "editorType")]
1105 pub editor_type: String,
1106 #[serde(rename = "isPlainText")]
1109 pub is_plain_text: bool,
1110 #[serde(
1112 rename = "parentFolderId",
1113 default,
1114 skip_serializing_if = "Option::is_none"
1115 )]
1116 pub parent_folder_id: Option<String>,
1117 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1119 pub from_name: Option<String>,
1120 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1122 pub from_email: Option<String>,
1123 #[serde(default, skip_serializing_if = "Option::is_none")]
1125 pub subject: Option<String>,
1126 #[serde(
1128 rename = "previewText",
1129 default,
1130 skip_serializing_if = "Option::is_none"
1131 )]
1132 pub preview_text: Option<String>,
1133 #[serde(
1136 rename = "editorContentUrl",
1137 default,
1138 skip_serializing_if = "Option::is_none"
1139 )]
1140 pub editor_content_url: Option<String>,
1141 pub deleted: bool,
1144 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1146 pub created_at: Option<String>,
1147 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1149 pub updated_at: Option<String>,
1150 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1152 pub trace_id: Option<String>,
1153}
1154
1155#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1157pub struct GetWorkflowCampaignPublicV2ResponseDto {
1158 pub id: String,
1161 #[serde(default, skip_serializing_if = "Option::is_none")]
1163 pub name: Option<String>,
1164 #[serde(default, skip_serializing_if = "Option::is_none")]
1167 pub status: Option<String>,
1168 #[serde(default, skip_serializing_if = "Option::is_none")]
1170 pub source: Option<String>,
1171 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1173 pub source_id: Option<String>,
1174 #[serde(rename = "subSources", default, skip_serializing_if = "Vec::is_empty")]
1178 pub sub_sources: Vec<WorkflowCampaignSubSourcePublicV2Dto>,
1179 #[serde(default, skip_serializing_if = "Option::is_none")]
1181 pub deleted: Option<bool>,
1182 #[serde(rename = "createdAt")]
1185 pub created_at: String,
1186 #[serde(rename = "updatedAt")]
1189 pub updated_at: String,
1190 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1192 pub trace_id: Option<String>,
1193}
1194
1195#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1197pub struct GetWorkflowCampaignsPublicResponseDto {
1198 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1201 pub campaigns: Vec<WorkflowCampaignPublicDto>,
1202 pub total: f64,
1205}
1206
1207#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1209pub struct IBuilderJsonMapper {
1210 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1213 pub elements: Vec<String>,
1214 pub attrs: serde_json::Value,
1217 #[serde(rename = "templateSettings")]
1220 pub template_settings: TemplateSettings,
1221}
1222
1223#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1225pub struct ImportTemplatePublicV2BodyDto {
1226 #[serde(rename = "importProvider")]
1230 pub import_provider: String,
1231 #[serde(rename = "importUrl")]
1234 pub import_url: String,
1235 #[serde(default, skip_serializing_if = "Option::is_none")]
1237 pub name: Option<String>,
1238 #[serde(
1240 rename = "parentFolderId",
1241 default,
1242 skip_serializing_if = "Option::is_none"
1243 )]
1244 pub parent_folder_id: Option<String>,
1245 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
1247 pub user_id: Option<String>,
1248}
1249
1250#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1252pub struct ImportTemplatePublicV2ResponseDto {
1253 pub id: String,
1256 pub name: String,
1259 #[serde(rename = "editorType")]
1263 pub editor_type: String,
1264 #[serde(rename = "isPlainText")]
1267 pub is_plain_text: bool,
1268 #[serde(
1270 rename = "parentFolderId",
1271 default,
1272 skip_serializing_if = "Option::is_none"
1273 )]
1274 pub parent_folder_id: Option<String>,
1275 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1277 pub from_name: Option<String>,
1278 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
1280 pub from_email: Option<String>,
1281 #[serde(
1283 rename = "subjectLine",
1284 default,
1285 skip_serializing_if = "Option::is_none"
1286 )]
1287 pub subject_line: Option<String>,
1288 #[serde(
1290 rename = "previewText",
1291 default,
1292 skip_serializing_if = "Option::is_none"
1293 )]
1294 pub preview_text: Option<String>,
1295 #[serde(
1297 rename = "previewUrl",
1298 default,
1299 skip_serializing_if = "Option::is_none"
1300 )]
1301 pub preview_url: Option<String>,
1302 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1304 pub created_at: Option<String>,
1305 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1307 pub updated_at: Option<String>,
1308 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1310 pub trace_id: Option<String>,
1311}
1312
1313#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1315pub struct InvalidLocationDTO {
1316 #[serde(
1318 rename = "statusCode",
1319 default,
1320 skip_serializing_if = "Option::is_none"
1321 )]
1322 pub status_code: Option<f64>,
1323 #[serde(default, skip_serializing_if = "Option::is_none")]
1325 pub message: Option<String>,
1326}
1327
1328#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1330pub struct ListBulkActionCampaignsPublicV2ResponseDto {
1331 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1334 pub campaigns: Vec<BulkActionCampaignPublicV2Dto>,
1335 pub total: f64,
1338 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1340 pub trace_id: Option<String>,
1341}
1342
1343#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1345pub struct ListEmailCampaignsPublicV2ResponseDto {
1346 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1349 pub campaigns: Vec<EmailCampaignPublicV2Dto>,
1350 pub total: f64,
1353 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1355 pub trace_id: Option<String>,
1356}
1357
1358#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1360pub struct ListTemplatesPublicV2ResponseDto {
1361 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1364 pub items: Vec<TemplateListItemPublicV2Dto>,
1365 pub total: f64,
1368 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1370 pub trace_id: Option<String>,
1371}
1372
1373#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1375pub struct ListWorkflowCampaignsPublicV2ResponseDto {
1376 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1379 pub campaigns: Vec<WorkflowCampaignPublicV2Dto>,
1380 pub total: f64,
1383 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1385 pub trace_id: Option<String>,
1386}
1387
1388#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1390pub struct NotFoundDTO {
1391 #[serde(
1393 rename = "statusCode",
1394 default,
1395 skip_serializing_if = "Option::is_none"
1396 )]
1397 pub status_code: Option<f64>,
1398 #[serde(default, skip_serializing_if = "Option::is_none")]
1400 pub message: Option<String>,
1401 #[serde(default, skip_serializing_if = "Option::is_none")]
1403 pub error: Option<String>,
1404}
1405
1406#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1408pub struct SaveBuilderDataDto {
1409 #[serde(rename = "locationId")]
1411 pub location_id: String,
1412 #[serde(rename = "templateId")]
1414 pub template_id: String,
1415 #[serde(rename = "updatedBy")]
1417 pub updated_by: String,
1418 pub dnd: IBuilderJsonMapper,
1420 pub html: String,
1422 #[serde(rename = "editorType")]
1425 pub editor_type: String,
1426 #[serde(
1427 rename = "previewText",
1428 default,
1429 skip_serializing_if = "Option::is_none"
1430 )]
1431 pub preview_text: Option<String>,
1432 #[serde(
1433 rename = "isPlainText",
1434 default,
1435 skip_serializing_if = "Option::is_none"
1436 )]
1437 pub is_plain_text: Option<bool>,
1438 #[serde(
1440 rename = "usedEmailAI",
1441 default,
1442 skip_serializing_if = "Option::is_none"
1443 )]
1444 pub used_email_ai: Option<bool>,
1445}
1446
1447#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1449pub struct ScheduleCampaignABTestConfigPublicV2Dto {
1450 #[serde(rename = "testType")]
1454 pub test_type: String,
1455 #[serde(rename = "testDuration")]
1458 pub test_duration: f64,
1459 #[serde(rename = "variationCount")]
1462 pub variation_count: f64,
1463 #[serde(rename = "testSize")]
1466 pub test_size: f64,
1467 #[serde(rename = "winningCriteria")]
1471 pub winning_criteria: String,
1472 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1475 pub variations: Vec<ScheduleCampaignABTestVariationPublicV2Dto>,
1476}
1477
1478#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1480pub struct ScheduleCampaignABTestVariationPublicV2Dto {
1481 #[serde(default, skip_serializing_if = "Option::is_none")]
1483 pub subject: Option<String>,
1484 #[serde(
1486 rename = "documentId",
1487 default,
1488 skip_serializing_if = "Option::is_none"
1489 )]
1490 pub document_id: Option<String>,
1491}
1492
1493#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1495pub struct ScheduleCampaignBatchConfigPublicV2Dto {
1496 #[serde(rename = "batchSize")]
1499 pub batch_size: f64,
1500 pub interval: f64,
1503 #[serde(rename = "intervalUnit")]
1507 pub interval_unit: String,
1508 #[serde(rename = "skipDays", default, skip_serializing_if = "Vec::is_empty")]
1511 pub skip_days: Vec<String>,
1512 #[serde(
1514 rename = "windowStart",
1515 default,
1516 skip_serializing_if = "Option::is_none"
1517 )]
1518 pub window_start: Option<String>,
1519 #[serde(rename = "windowEnd", default, skip_serializing_if = "Option::is_none")]
1521 pub window_end: Option<String>,
1522}
1523
1524#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1526pub struct ScheduleCampaignEmailMetaPublicV2Dto {
1527 pub subject: String,
1530 #[serde(rename = "fromName")]
1533 pub from_name: String,
1534 #[serde(rename = "fromEmail")]
1537 pub from_email: String,
1538 #[serde(
1540 rename = "replyToAddress",
1541 default,
1542 skip_serializing_if = "Option::is_none"
1543 )]
1544 pub reply_to_address: Option<String>,
1545 #[serde(
1547 rename = "previewText",
1548 default,
1549 skip_serializing_if = "Option::is_none"
1550 )]
1551 pub preview_text: Option<String>,
1552 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1554 pub attachments: Vec<String>,
1555}
1556
1557#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1559pub struct ScheduleCampaignPublicV2BodyDto {
1560 #[serde(rename = "scheduleType")]
1564 pub schedule_type: String,
1565 #[serde(rename = "timeZone")]
1568 pub time_zone: String,
1569 #[serde(rename = "userId")]
1572 pub user_id: String,
1573 #[serde(rename = "userName", default, skip_serializing_if = "Option::is_none")]
1575 pub user_name: Option<String>,
1576 #[serde(rename = "emailMeta")]
1579 pub email_meta: ScheduleCampaignEmailMetaPublicV2Dto,
1580 pub recipients: ScheduleCampaignRecipientsPublicV2Dto,
1583 #[serde(rename = "sendDays", default, skip_serializing_if = "Vec::is_empty")]
1586 pub send_days: Vec<String>,
1587 #[serde(
1590 rename = "scheduleConfig",
1591 default,
1592 skip_serializing_if = "Option::is_none"
1593 )]
1594 pub schedule_config: Option<ScheduleCampaignScheduleConfigPublicV2Dto>,
1595 #[serde(rename = "rssConfig", default, skip_serializing_if = "Option::is_none")]
1597 pub rss_config: Option<ScheduleCampaignRssConfigPublicV2Dto>,
1598 #[serde(
1600 rename = "abTestConfig",
1601 default,
1602 skip_serializing_if = "Option::is_none"
1603 )]
1604 pub ab_test_config: Option<ScheduleCampaignABTestConfigPublicV2Dto>,
1605}
1606
1607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1609pub struct ScheduleCampaignPublicV2ResponseDto {
1610 #[serde(rename = "campaignId")]
1613 pub campaign_id: String,
1614 #[serde(rename = "sourceId")]
1617 pub source_id: String,
1618 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
1620 pub trace_id: Option<String>,
1621}
1622
1623#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1625pub struct ScheduleCampaignRecipientsPublicV2Dto {
1626 #[serde(rename = "type")]
1630 pub type_: String,
1631 #[serde(rename = "contactIds", default, skip_serializing_if = "Vec::is_empty")]
1633 pub contact_ids: Vec<String>,
1634 #[serde(rename = "tagIds", default, skip_serializing_if = "Vec::is_empty")]
1636 pub tag_ids: Vec<String>,
1637 #[serde(default, skip_serializing_if = "Option::is_none")]
1641 pub segment: Option<String>,
1642 #[serde(
1644 rename = "freezeList",
1645 default,
1646 skip_serializing_if = "Option::is_none"
1647 )]
1648 pub freeze_list: Option<bool>,
1649}
1650
1651#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1653pub struct ScheduleCampaignResendPublicV2Dto {
1654 #[serde(default, skip_serializing_if = "Option::is_none")]
1656 pub enabled: Option<bool>,
1657 #[serde(rename = "waitHours", default, skip_serializing_if = "Option::is_none")]
1659 pub wait_hours: Option<f64>,
1660 #[serde(default, skip_serializing_if = "Option::is_none")]
1662 pub subject: Option<String>,
1663}
1664
1665#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1667pub struct ScheduleCampaignRssConfigPublicV2Dto {
1668 pub name: String,
1671 #[serde(rename = "rssFeedURL")]
1674 pub rss_feed_url: String,
1675 #[serde(rename = "repeatAfter")]
1679 pub repeat_after: String,
1680 #[serde(rename = "repeatAfterTime")]
1683 pub repeat_after_time: String,
1684 #[serde(
1686 rename = "rssFeedLimit",
1687 default,
1688 skip_serializing_if = "Option::is_none"
1689 )]
1690 pub rss_feed_limit: Option<f64>,
1691 #[serde(
1695 rename = "startAtDay",
1696 default,
1697 skip_serializing_if = "Option::is_none"
1698 )]
1699 pub start_at_day: Option<String>,
1700 #[serde(
1702 rename = "startAtMonthDay",
1703 default,
1704 skip_serializing_if = "Option::is_none"
1705 )]
1706 pub start_at_month_day: Option<String>,
1707 #[serde(
1709 rename = "firstExecutionDate",
1710 default,
1711 skip_serializing_if = "Option::is_none"
1712 )]
1713 pub first_execution_date: Option<String>,
1714}
1715
1716#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1718pub struct ScheduleCampaignScheduleConfigPublicV2Dto {
1719 #[serde(rename = "sendAt", default, skip_serializing_if = "Option::is_none")]
1721 pub send_at: Option<String>,
1722 #[serde(default, skip_serializing_if = "Option::is_none")]
1724 pub batch: Option<ScheduleCampaignBatchConfigPublicV2Dto>,
1725 #[serde(default, skip_serializing_if = "Option::is_none")]
1727 pub tracking: Option<ScheduleCampaignTrackingPublicV2Dto>,
1728 #[serde(default, skip_serializing_if = "Option::is_none")]
1730 pub resend: Option<ScheduleCampaignResendPublicV2Dto>,
1731 #[serde(
1733 rename = "emailPreferenceId",
1734 default,
1735 skip_serializing_if = "Option::is_none"
1736 )]
1737 pub email_preference_id: Option<String>,
1738}
1739
1740#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1742pub struct ScheduleCampaignTrackingPublicV2Dto {
1743 #[serde(
1745 rename = "clickTracking",
1746 default,
1747 skip_serializing_if = "Option::is_none"
1748 )]
1749 pub click_tracking: Option<bool>,
1750 #[serde(
1752 rename = "utmTracking",
1753 default,
1754 skip_serializing_if = "Option::is_none"
1755 )]
1756 pub utm_tracking: Option<bool>,
1757}
1758
1759#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1761pub struct ScheduleDto {
1762 pub name: String,
1764 #[serde(rename = "repeatAfter")]
1766 pub repeat_after: String,
1767 pub id: String,
1769 #[serde(rename = "parentId")]
1771 pub parent_id: String,
1772 #[serde(rename = "childCount")]
1774 pub child_count: f64,
1775 #[serde(rename = "campaignType")]
1777 pub campaign_type: String,
1778 #[serde(rename = "bulkActionVersion")]
1780 pub bulk_action_version: String,
1781 #[serde(rename = "_id")]
1783 pub id_alt: String,
1784 pub status: String,
1786 #[serde(rename = "sendDays", default, skip_serializing_if = "Vec::is_empty")]
1788 pub send_days: Vec<String>,
1789 pub deleted: bool,
1791 pub migrated: bool,
1793 pub archived: bool,
1795 #[serde(rename = "hasTracking")]
1797 pub has_tracking: bool,
1798 #[serde(rename = "isPlainText")]
1800 pub is_plain_text: bool,
1801 #[serde(rename = "hasUtmTracking")]
1803 pub has_utm_tracking: bool,
1804 #[serde(rename = "enableResendToUnopened")]
1806 pub enable_resend_to_unopened: bool,
1807 #[serde(rename = "locationId")]
1809 pub location_id: String,
1810 #[serde(rename = "templateId")]
1812 pub template_id: String,
1813 #[serde(rename = "templateType")]
1815 pub template_type: String,
1816 #[serde(rename = "createdAt")]
1818 pub created_at: String,
1819 #[serde(rename = "updatedAt")]
1821 pub updated_at: String,
1822 #[serde(rename = "__v")]
1824 pub v: f64,
1825 #[serde(rename = "documentId")]
1827 pub document_id: String,
1828 #[serde(rename = "downloadUrl")]
1830 pub download_url: String,
1831 #[serde(rename = "templateDataDownloadUrl")]
1833 pub template_data_download_url: String,
1834 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1836 pub child: Vec<String>,
1837}
1838
1839#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1841pub struct ScheduleFetchSuccessfulDTO {
1842 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1845 pub schedules: Vec<ScheduleDto>,
1846 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1849 pub total: Vec<String>,
1850 #[serde(rename = "traceId")]
1853 pub trace_id: String,
1854}
1855
1856#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1858pub struct TemplateListItemPublicV2Dto {
1859 pub id: String,
1862 pub name: String,
1865 #[serde(rename = "type")]
1869 pub type_: String,
1870 #[serde(
1872 rename = "isPlainText",
1873 default,
1874 skip_serializing_if = "Option::is_none"
1875 )]
1876 pub is_plain_text: Option<bool>,
1877 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
1879 pub updated_at: Option<String>,
1880 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
1882 pub created_at: Option<String>,
1883 #[serde(
1885 rename = "previewUrl",
1886 default,
1887 skip_serializing_if = "Option::is_none"
1888 )]
1889 pub preview_url: Option<String>,
1890 #[serde(
1893 rename = "editorType",
1894 default,
1895 skip_serializing_if = "Option::is_none"
1896 )]
1897 pub editor_type: Option<String>,
1898 #[serde(
1900 rename = "childCount",
1901 default,
1902 skip_serializing_if = "Option::is_none"
1903 )]
1904 pub child_count: Option<f64>,
1905 #[serde(
1907 rename = "hasChildren",
1908 default,
1909 skip_serializing_if = "Option::is_none"
1910 )]
1911 pub has_children: Option<bool>,
1912 #[serde(
1914 rename = "parentFolderId",
1915 default,
1916 skip_serializing_if = "Option::is_none"
1917 )]
1918 pub parent_folder_id: Option<String>,
1919}
1920
1921#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1923pub struct TemplateSettings {
1924 #[serde(flatten)]
1926 pub extra: serde_json::Map<String, serde_json::Value>,
1927}
1928
1929#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1931pub struct UpdateEmailCampaignPublicV2BodyDto {
1932 #[serde(default, skip_serializing_if = "Option::is_none")]
1934 pub name: Option<String>,
1935 #[serde(
1938 rename = "editorContent",
1939 default,
1940 skip_serializing_if = "Option::is_none"
1941 )]
1942 pub editor_content: Option<String>,
1943 #[serde(
1947 rename = "editorType",
1948 default,
1949 skip_serializing_if = "Option::is_none"
1950 )]
1951 pub editor_type: Option<String>,
1952 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
1954 pub user_id: Option<String>,
1955}
1956
1957#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1959pub struct UpdateEmailCampaignPublicV2ResponseDto {
1960 pub id: String,
1963 #[serde(default, skip_serializing_if = "Option::is_none")]
1965 pub source: Option<String>,
1966 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
1968 pub source_id: Option<String>,
1969 #[serde(default, skip_serializing_if = "Option::is_none")]
1971 pub name: Option<String>,
1972 #[serde(default, skip_serializing_if = "Option::is_none")]
1976 pub status: Option<String>,
1977 #[serde(
1979 rename = "campaignType",
1980 default,
1981 skip_serializing_if = "Option::is_none"
1982 )]
1983 pub campaign_type: Option<String>,
1984 #[serde(
1986 rename = "campaignCategory",
1987 default,
1988 skip_serializing_if = "Option::is_none"
1989 )]
1990 pub campaign_category: Option<String>,
1991 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1993 pub variations: Vec<EmailCampaignVariationPublicV2Dto>,
1994 pub deleted: bool,
1997 #[serde(rename = "createdAt")]
2000 pub created_at: String,
2001 #[serde(rename = "updatedAt")]
2004 pub updated_at: String,
2005 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
2007 pub trace_id: Option<String>,
2008}
2009
2010#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2012pub struct UpdateEmailTemplateDto {
2013 #[serde(rename = "locationId")]
2016 pub location_id: String,
2017 #[serde(rename = "updatedBy", default, skip_serializing_if = "Option::is_none")]
2019 pub updated_by: Option<String>,
2020 #[serde(
2026 rename = "editorContent",
2027 default,
2028 skip_serializing_if = "Option::is_none"
2029 )]
2030 pub editor_content: Option<serde_json::Value>,
2031 #[serde(
2036 rename = "editorType",
2037 default,
2038 skip_serializing_if = "Option::is_none"
2039 )]
2040 pub editor_type: Option<String>,
2041 #[serde(
2043 rename = "previewText",
2044 default,
2045 skip_serializing_if = "Option::is_none"
2046 )]
2047 pub preview_text: Option<String>,
2048 #[serde(
2050 rename = "subjectLine",
2051 default,
2052 skip_serializing_if = "Option::is_none"
2053 )]
2054 pub subject_line: Option<String>,
2055 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2057 pub from_name: Option<String>,
2058 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2060 pub from_email: Option<String>,
2061 #[serde(default, skip_serializing_if = "Option::is_none")]
2063 pub name: Option<String>,
2064 #[serde(default, skip_serializing_if = "Option::is_none")]
2066 pub archived: Option<bool>,
2067 #[serde(
2070 rename = "fieldDefaults",
2071 default,
2072 skip_serializing_if = "Option::is_none"
2073 )]
2074 pub field_defaults: Option<serde_json::Value>,
2075}
2076
2077#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2079pub struct UpdateEmailTemplateResponseDto {
2080 pub ok: bool,
2083 pub id: String,
2086 pub name: String,
2089 pub archived: bool,
2092 #[serde(rename = "builderVersion")]
2095 pub builder_version: String,
2096 #[serde(rename = "fromName")]
2099 pub from_name: String,
2100 #[serde(rename = "fromEmail")]
2103 pub from_email: String,
2104 #[serde(rename = "subjectLine")]
2107 pub subject_line: String,
2108 #[serde(rename = "previewText")]
2111 pub preview_text: String,
2112 #[serde(rename = "previewUrl")]
2115 pub preview_url: String,
2116 #[serde(rename = "type")]
2120 pub type_: String,
2121 #[serde(rename = "lastUpdated")]
2124 pub last_updated: String,
2125 #[serde(rename = "createdAt")]
2128 pub created_at: String,
2129 #[serde(rename = "isPlainText")]
2132 pub is_plain_text: bool,
2133 #[serde(
2135 rename = "fieldDefaults",
2136 default,
2137 skip_serializing_if = "Option::is_none"
2138 )]
2139 pub field_defaults: Option<serde_json::Value>,
2140}
2141
2142#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2144pub struct UpdateTemplatePublicV2BodyDto {
2145 #[serde(default, skip_serializing_if = "Option::is_none")]
2147 pub name: Option<String>,
2148 #[serde(
2151 rename = "editorContent",
2152 default,
2153 skip_serializing_if = "Option::is_none"
2154 )]
2155 pub editor_content: Option<String>,
2156 #[serde(
2160 rename = "editorType",
2161 default,
2162 skip_serializing_if = "Option::is_none"
2163 )]
2164 pub editor_type: Option<String>,
2165 #[serde(
2167 rename = "previewText",
2168 default,
2169 skip_serializing_if = "Option::is_none"
2170 )]
2171 pub preview_text: Option<String>,
2172 #[serde(
2174 rename = "subjectLine",
2175 default,
2176 skip_serializing_if = "Option::is_none"
2177 )]
2178 pub subject_line: Option<String>,
2179 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2181 pub from_name: Option<String>,
2182 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2184 pub from_email: Option<String>,
2185 #[serde(default, skip_serializing_if = "Option::is_none")]
2187 pub archived: Option<bool>,
2188 #[serde(
2190 rename = "parentFolderId",
2191 default,
2192 skip_serializing_if = "Option::is_none"
2193 )]
2194 pub parent_folder_id: Option<String>,
2195 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2197 pub user_id: Option<String>,
2198}
2199
2200#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2202pub struct UpdateTemplatePublicV2ResponseDto {
2203 pub id: String,
2206 pub name: String,
2209 pub archived: bool,
2212 #[serde(rename = "fromName")]
2215 pub from_name: String,
2216 #[serde(rename = "fromEmail")]
2219 pub from_email: String,
2220 #[serde(rename = "subjectLine")]
2223 pub subject_line: String,
2224 #[serde(rename = "previewText")]
2227 pub preview_text: String,
2228 #[serde(rename = "previewUrl")]
2231 pub preview_url: String,
2232 #[serde(
2235 rename = "editorType",
2236 default,
2237 skip_serializing_if = "Option::is_none"
2238 )]
2239 pub editor_type: Option<String>,
2240 #[serde(
2242 rename = "isPlainText",
2243 default,
2244 skip_serializing_if = "Option::is_none"
2245 )]
2246 pub is_plain_text: Option<bool>,
2247 #[serde(
2249 rename = "parentFolderId",
2250 default,
2251 skip_serializing_if = "Option::is_none"
2252 )]
2253 pub parent_folder_id: Option<String>,
2254 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2256 pub updated_at: Option<String>,
2257 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2259 pub created_at: Option<String>,
2260 #[serde(rename = "traceId", default, skip_serializing_if = "Option::is_none")]
2262 pub trace_id: Option<String>,
2263}
2264
2265#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2267pub struct WorkflowCampaignPublicDto {
2268 pub id: String,
2271 pub name: String,
2274 pub status: String,
2278 #[serde(rename = "sourceId")]
2281 pub source_id: String,
2282 pub deleted: bool,
2285 #[serde(rename = "createdAt")]
2288 pub created_at: String,
2289 #[serde(rename = "updatedAt")]
2292 pub updated_at: String,
2293}
2294
2295#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2297pub struct WorkflowCampaignPublicV2Dto {
2298 pub id: String,
2301 #[serde(default, skip_serializing_if = "Option::is_none")]
2303 pub name: Option<String>,
2304 #[serde(default, skip_serializing_if = "Option::is_none")]
2307 pub status: Option<String>,
2308 #[serde(default, skip_serializing_if = "Option::is_none")]
2310 pub source: Option<String>,
2311 #[serde(rename = "sourceId", default, skip_serializing_if = "Option::is_none")]
2313 pub source_id: Option<String>,
2314 #[serde(default, skip_serializing_if = "Option::is_none")]
2316 pub deleted: Option<bool>,
2317 #[serde(rename = "createdAt")]
2320 pub created_at: String,
2321 #[serde(rename = "updatedAt")]
2324 pub updated_at: String,
2325}
2326
2327#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2329pub struct WorkflowCampaignSubSourcePublicV2Dto {
2330 pub id: String,
2334 #[serde(default, skip_serializing_if = "Option::is_none")]
2336 pub name: Option<String>,
2337 #[serde(default, skip_serializing_if = "Option::is_none")]
2339 pub subject: Option<String>,
2340 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
2342 pub from_name: Option<String>,
2343 #[serde(rename = "fromEmail", default, skip_serializing_if = "Option::is_none")]
2345 pub from_email: Option<String>,
2346 #[serde(
2348 rename = "previewText",
2349 default,
2350 skip_serializing_if = "Option::is_none"
2351 )]
2352 pub preview_text: Option<String>,
2353 #[serde(
2356 rename = "editorType",
2357 default,
2358 skip_serializing_if = "Option::is_none"
2359 )]
2360 pub editor_type: Option<String>,
2361 #[serde(
2363 rename = "isPlainText",
2364 default,
2365 skip_serializing_if = "Option::is_none"
2366 )]
2367 pub is_plain_text: Option<bool>,
2368 #[serde(
2371 rename = "editorContentUrl",
2372 default,
2373 skip_serializing_if = "Option::is_none"
2374 )]
2375 pub editor_content_url: Option<String>,
2376 #[serde(rename = "createdAt", default, skip_serializing_if = "Option::is_none")]
2378 pub created_at: Option<String>,
2379 #[serde(rename = "updatedAt", default, skip_serializing_if = "Option::is_none")]
2381 pub updated_at: Option<String>,
2382}