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 AllGroupsSuccessfulResponseDTO {
24 #[serde(default, skip_serializing_if = "Vec::is_empty")]
25 pub groups: Vec<GroupDTO>,
26}
27
28#[derive(Debug, Clone, Default, Serialize, Deserialize)]
30pub struct AppointmentCreateSchema {
31 #[serde(default, skip_serializing_if = "Option::is_none")]
33 pub title: Option<String>,
34 #[serde(
38 rename = "meetingLocationType",
39 default,
40 skip_serializing_if = "Option::is_none"
41 )]
42 pub meeting_location_type: Option<String>,
43 #[serde(
46 rename = "meetingLocationId",
47 default,
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub meeting_location_id: Option<String>,
51 #[serde(
54 rename = "overrideLocationConfig",
55 default,
56 skip_serializing_if = "Option::is_none"
57 )]
58 pub override_location_config: Option<bool>,
59 #[serde(
62 rename = "appointmentStatus",
63 default,
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub appointment_status: Option<String>,
67 #[serde(
69 rename = "assignedUserId",
70 default,
71 skip_serializing_if = "Option::is_none"
72 )]
73 pub assigned_user_id: Option<String>,
74 #[serde(default, skip_serializing_if = "Option::is_none")]
76 pub description: Option<String>,
77 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub address: Option<String>,
80 #[serde(
82 rename = "ignoreDateRange",
83 default,
84 skip_serializing_if = "Option::is_none"
85 )]
86 pub ignore_date_range: Option<bool>,
87 #[serde(rename = "toNotify", default, skip_serializing_if = "Option::is_none")]
89 pub to_notify: Option<bool>,
90 #[serde(
93 rename = "ignoreFreeSlotValidation",
94 default,
95 skip_serializing_if = "Option::is_none"
96 )]
97 pub ignore_free_slot_validation: Option<bool>,
98 #[serde(default, skip_serializing_if = "Option::is_none")]
102 pub rrule: Option<String>,
103 #[serde(rename = "calendarId")]
106 pub calendar_id: String,
107 #[serde(rename = "locationId")]
110 pub location_id: String,
111 #[serde(rename = "contactId")]
114 pub contact_id: String,
115 #[serde(rename = "startTime")]
118 pub start_time: String,
119 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
121 pub end_time: Option<String>,
122}
123
124#[derive(Debug, Clone, Default, Serialize, Deserialize)]
126pub struct AppointmentEditSchema {
127 #[serde(default, skip_serializing_if = "Option::is_none")]
129 pub title: Option<String>,
130 #[serde(
134 rename = "meetingLocationType",
135 default,
136 skip_serializing_if = "Option::is_none"
137 )]
138 pub meeting_location_type: Option<String>,
139 #[serde(
142 rename = "meetingLocationId",
143 default,
144 skip_serializing_if = "Option::is_none"
145 )]
146 pub meeting_location_id: Option<String>,
147 #[serde(
150 rename = "overrideLocationConfig",
151 default,
152 skip_serializing_if = "Option::is_none"
153 )]
154 pub override_location_config: Option<bool>,
155 #[serde(
158 rename = "appointmentStatus",
159 default,
160 skip_serializing_if = "Option::is_none"
161 )]
162 pub appointment_status: Option<String>,
163 #[serde(
165 rename = "assignedUserId",
166 default,
167 skip_serializing_if = "Option::is_none"
168 )]
169 pub assigned_user_id: Option<String>,
170 #[serde(default, skip_serializing_if = "Option::is_none")]
172 pub description: Option<String>,
173 #[serde(default, skip_serializing_if = "Option::is_none")]
175 pub address: Option<String>,
176 #[serde(
178 rename = "ignoreDateRange",
179 default,
180 skip_serializing_if = "Option::is_none"
181 )]
182 pub ignore_date_range: Option<bool>,
183 #[serde(rename = "toNotify", default, skip_serializing_if = "Option::is_none")]
185 pub to_notify: Option<bool>,
186 #[serde(
189 rename = "ignoreFreeSlotValidation",
190 default,
191 skip_serializing_if = "Option::is_none"
192 )]
193 pub ignore_free_slot_validation: Option<bool>,
194 #[serde(default, skip_serializing_if = "Option::is_none")]
198 pub rrule: Option<String>,
199 #[serde(
201 rename = "calendarId",
202 default,
203 skip_serializing_if = "Option::is_none"
204 )]
205 pub calendar_id: Option<String>,
206 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
208 pub start_time: Option<String>,
209 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
211 pub end_time: Option<String>,
212}
213
214#[derive(Debug, Clone, Default, Serialize, Deserialize)]
216pub struct AppointmentSchemaResponse {
217 #[serde(
221 rename = "calendarId",
222 default,
223 skip_serializing_if = "Option::is_none"
224 )]
225 pub calendar_id: Option<String>,
226 #[serde(
230 rename = "locationId",
231 default,
232 skip_serializing_if = "Option::is_none"
233 )]
234 pub location_id: Option<String>,
235 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
239 pub contact_id: Option<String>,
240 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
242 pub start_time: Option<String>,
243 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
245 pub end_time: Option<String>,
246 #[serde(default, skip_serializing_if = "Option::is_none")]
248 pub title: Option<String>,
249 #[serde(
251 rename = "meetingLocationType",
252 default,
253 skip_serializing_if = "Option::is_none"
254 )]
255 pub meeting_location_type: Option<String>,
256 #[serde(
259 rename = "appointmentStatus",
260 default,
261 skip_serializing_if = "Option::is_none"
262 )]
263 pub appointment_status: Option<String>,
264 #[serde(
266 rename = "assignedUserId",
267 default,
268 skip_serializing_if = "Option::is_none"
269 )]
270 pub assigned_user_id: Option<String>,
271 #[serde(default, skip_serializing_if = "Option::is_none")]
273 pub address: Option<String>,
274 #[serde(
276 rename = "isRecurring",
277 default,
278 skip_serializing_if = "Option::is_none"
279 )]
280 pub is_recurring: Option<bool>,
281 #[serde(default, skip_serializing_if = "Option::is_none")]
283 pub rrule: Option<String>,
284 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
288 pub date_added: Option<String>,
289 #[serde(
293 rename = "dateUpdated",
294 default,
295 skip_serializing_if = "Option::is_none"
296 )]
297 pub date_updated: Option<String>,
298 #[serde(default, skip_serializing_if = "Option::is_none")]
302 pub id: Option<String>,
303}
304
305#[derive(Debug, Clone, Default, Serialize, Deserialize)]
307pub struct Availability {
308 #[serde(default, skip_serializing_if = "Option::is_none")]
312 pub date: Option<String>,
313 #[serde(default, skip_serializing_if = "Vec::is_empty")]
316 pub hours: Vec<Hour>,
317 #[serde(default, skip_serializing_if = "Option::is_none")]
318 pub deleted: Option<bool>,
319}
320
321#[derive(Debug, Clone, Default, Serialize, Deserialize)]
323pub struct BlockSlotCreateRequestDTO {
324 #[serde(default, skip_serializing_if = "Option::is_none")]
326 pub title: Option<String>,
327 #[serde(rename = "calendarId")]
330 pub calendar_id: String,
331 #[serde(
333 rename = "assignedUserId",
334 default,
335 skip_serializing_if = "Option::is_none"
336 )]
337 pub assigned_user_id: Option<String>,
338 #[serde(rename = "locationId")]
341 pub location_id: String,
342 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
344 pub start_time: Option<String>,
345 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
347 pub end_time: Option<String>,
348}
349
350#[derive(Debug, Clone, Default, Serialize, Deserialize)]
352pub struct BlockSlotEditRequestDTO {
353 #[serde(default, skip_serializing_if = "Option::is_none")]
355 pub title: Option<String>,
356 #[serde(rename = "calendarId")]
359 pub calendar_id: String,
360 #[serde(
362 rename = "assignedUserId",
363 default,
364 skip_serializing_if = "Option::is_none"
365 )]
366 pub assigned_user_id: Option<String>,
367 #[serde(rename = "locationId")]
370 pub location_id: String,
371 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
373 pub start_time: Option<String>,
374 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
376 pub end_time: Option<String>,
377}
378
379#[derive(Debug, Clone, Default, Serialize, Deserialize)]
381pub struct BlockedSlotSuccessfulResponseDto {
382 #[serde(default, skip_serializing_if = "Option::is_none")]
386 pub id: Option<String>,
387 #[serde(
391 rename = "locationId",
392 default,
393 skip_serializing_if = "Option::is_none"
394 )]
395 pub location_id: Option<String>,
396 #[serde(default, skip_serializing_if = "Option::is_none")]
400 pub title: Option<String>,
401 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
405 pub start_time: Option<serde_json::Value>,
406 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
410 pub end_time: Option<serde_json::Value>,
411 #[serde(
413 rename = "calendarId",
414 default,
415 skip_serializing_if = "Option::is_none"
416 )]
417 pub calendar_id: Option<String>,
418 #[serde(
420 rename = "assignedUserId",
421 default,
422 skip_serializing_if = "Option::is_none"
423 )]
424 pub assigned_user_id: Option<String>,
425}
426
427#[derive(Debug, Clone, Default, Serialize, Deserialize)]
429pub struct CalendarByIdSuccessfulResponseDTO {
430 #[serde(default, skip_serializing_if = "Option::is_none")]
433 pub calendar: Option<CalendarDTO>,
434}
435
436#[derive(Debug, Clone, Default, Serialize, Deserialize)]
438pub struct CalendarCreateDTO {
439 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
441 pub is_active: Option<bool>,
442 #[serde(default, skip_serializing_if = "Vec::is_empty")]
444 pub notifications: Vec<CalendarNotification>,
445 #[serde(rename = "locationId")]
447 pub location_id: String,
448 #[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
450 pub group_id: Option<String>,
451 #[serde(rename = "teamMembers", default, skip_serializing_if = "Vec::is_empty")]
454 pub team_members: Vec<TeamMember>,
455 #[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
458 pub event_type: Option<String>,
459 pub name: String,
461 #[serde(default, skip_serializing_if = "Option::is_none")]
462 pub description: Option<String>,
463 #[serde(default, skip_serializing_if = "Option::is_none")]
464 pub slug: Option<String>,
465 #[serde(
466 rename = "widgetSlug",
467 default,
468 skip_serializing_if = "Option::is_none"
469 )]
470 pub widget_slug: Option<String>,
471 #[serde(
474 rename = "calendarType",
475 default,
476 skip_serializing_if = "Option::is_none"
477 )]
478 pub calendar_type: Option<String>,
479 #[serde(
482 rename = "widgetType",
483 default,
484 skip_serializing_if = "Option::is_none"
485 )]
486 pub widget_type: Option<String>,
487 #[serde(
488 rename = "eventTitle",
489 default,
490 skip_serializing_if = "Option::is_none"
491 )]
492 pub event_title: Option<String>,
493 #[serde(
494 rename = "eventColor",
495 default,
496 skip_serializing_if = "Option::is_none"
497 )]
498 pub event_color: Option<String>,
499 #[serde(
502 rename = "meetingLocation",
503 default,
504 skip_serializing_if = "Option::is_none"
505 )]
506 pub meeting_location: Option<String>,
507 #[serde(
509 rename = "locationConfigurations",
510 default,
511 skip_serializing_if = "Vec::is_empty"
512 )]
513 pub location_configurations: Vec<LocationConfiguration>,
514 #[serde(
516 rename = "slotDuration",
517 default,
518 skip_serializing_if = "Option::is_none"
519 )]
520 pub slot_duration: Option<f64>,
521 #[serde(
524 rename = "slotDurationUnit",
525 default,
526 skip_serializing_if = "Option::is_none"
527 )]
528 pub slot_duration_unit: Option<String>,
529 #[serde(
532 rename = "slotInterval",
533 default,
534 skip_serializing_if = "Option::is_none"
535 )]
536 pub slot_interval: Option<f64>,
537 #[serde(
540 rename = "slotIntervalUnit",
541 default,
542 skip_serializing_if = "Option::is_none"
543 )]
544 pub slot_interval_unit: Option<String>,
545 #[serde(
548 rename = "slotBuffer",
549 default,
550 skip_serializing_if = "Option::is_none"
551 )]
552 pub slot_buffer: Option<f64>,
553 #[serde(
556 rename = "slotBufferUnit",
557 default,
558 skip_serializing_if = "Option::is_none"
559 )]
560 pub slot_buffer_unit: Option<String>,
561 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
564 pub pre_buffer: Option<f64>,
565 #[serde(
568 rename = "preBufferUnit",
569 default,
570 skip_serializing_if = "Option::is_none"
571 )]
572 pub pre_buffer_unit: Option<String>,
573 #[serde(
576 rename = "appoinmentPerSlot",
577 default,
578 skip_serializing_if = "Option::is_none"
579 )]
580 pub appoinment_per_slot: Option<f64>,
581 #[serde(
583 rename = "appoinmentPerDay",
584 default,
585 skip_serializing_if = "Option::is_none"
586 )]
587 pub appoinment_per_day: Option<f64>,
588 #[serde(
590 rename = "allowBookingAfter",
591 default,
592 skip_serializing_if = "Option::is_none"
593 )]
594 pub allow_booking_after: Option<f64>,
595 #[serde(
598 rename = "allowBookingAfterUnit",
599 default,
600 skip_serializing_if = "Option::is_none"
601 )]
602 pub allow_booking_after_unit: Option<String>,
603 #[serde(
605 rename = "allowBookingFor",
606 default,
607 skip_serializing_if = "Option::is_none"
608 )]
609 pub allow_booking_for: Option<f64>,
610 #[serde(
613 rename = "allowBookingForUnit",
614 default,
615 skip_serializing_if = "Option::is_none"
616 )]
617 pub allow_booking_for_unit: Option<String>,
618 #[serde(rename = "openHours", default, skip_serializing_if = "Vec::is_empty")]
621 pub open_hours: Vec<OpenHour>,
622 #[serde(
625 rename = "enableRecurring",
626 default,
627 skip_serializing_if = "Option::is_none"
628 )]
629 pub enable_recurring: Option<bool>,
630 #[serde(default, skip_serializing_if = "Option::is_none")]
631 pub recurring: Option<Recurring>,
632 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
633 pub form_id: Option<String>,
634 #[serde(
635 rename = "stickyContact",
636 default,
637 skip_serializing_if = "Option::is_none"
638 )]
639 pub sticky_contact: Option<bool>,
640 #[serde(
641 rename = "isLivePaymentMode",
642 default,
643 skip_serializing_if = "Option::is_none"
644 )]
645 pub is_live_payment_mode: Option<bool>,
646 #[serde(
647 rename = "autoConfirm",
648 default,
649 skip_serializing_if = "Option::is_none"
650 )]
651 pub auto_confirm: Option<bool>,
652 #[serde(
653 rename = "shouldSendAlertEmailsToAssignedMember",
654 default,
655 skip_serializing_if = "Option::is_none"
656 )]
657 pub should_send_alert_emails_to_assigned_member: Option<bool>,
658 #[serde(
659 rename = "alertEmail",
660 default,
661 skip_serializing_if = "Option::is_none"
662 )]
663 pub alert_email: Option<String>,
664 #[serde(
665 rename = "googleInvitationEmails",
666 default,
667 skip_serializing_if = "Option::is_none"
668 )]
669 pub google_invitation_emails: Option<bool>,
670 #[serde(
671 rename = "allowReschedule",
672 default,
673 skip_serializing_if = "Option::is_none"
674 )]
675 pub allow_reschedule: Option<bool>,
676 #[serde(
677 rename = "allowCancellation",
678 default,
679 skip_serializing_if = "Option::is_none"
680 )]
681 pub allow_cancellation: Option<bool>,
682 #[serde(
683 rename = "shouldAssignContactToTeamMember",
684 default,
685 skip_serializing_if = "Option::is_none"
686 )]
687 pub should_assign_contact_to_team_member: Option<bool>,
688 #[serde(
689 rename = "shouldSkipAssigningContactForExisting",
690 default,
691 skip_serializing_if = "Option::is_none"
692 )]
693 pub should_skip_assigning_contact_for_existing: Option<bool>,
694 #[serde(default, skip_serializing_if = "Option::is_none")]
695 pub notes: Option<String>,
696 #[serde(rename = "pixelId", default, skip_serializing_if = "Option::is_none")]
697 pub pixel_id: Option<String>,
698 #[serde(
700 rename = "formSubmitType",
701 default,
702 skip_serializing_if = "Option::is_none"
703 )]
704 pub form_submit_type: Option<String>,
705 #[serde(
706 rename = "formSubmitRedirectURL",
707 default,
708 skip_serializing_if = "Option::is_none"
709 )]
710 pub form_submit_redirect_url: Option<String>,
711 #[serde(
712 rename = "formSubmitThanksMessage",
713 default,
714 skip_serializing_if = "Option::is_none"
715 )]
716 pub form_submit_thanks_message: Option<String>,
717 #[serde(
721 rename = "availabilityType",
722 default,
723 skip_serializing_if = "Option::is_none"
724 )]
725 pub availability_type: Option<String>,
726 #[serde(default, skip_serializing_if = "Vec::is_empty")]
729 pub availabilities: Vec<Availability>,
730 #[serde(rename = "guestType", default, skip_serializing_if = "Option::is_none")]
732 pub guest_type: Option<String>,
733 #[serde(
734 rename = "consentLabel",
735 default,
736 skip_serializing_if = "Option::is_none"
737 )]
738 pub consent_label: Option<String>,
739 #[serde(
740 rename = "calendarCoverImage",
741 default,
742 skip_serializing_if = "Option::is_none"
743 )]
744 pub calendar_cover_image: Option<String>,
745 #[serde(
747 rename = "lookBusyConfig",
748 default,
749 skip_serializing_if = "Option::is_none"
750 )]
751 pub look_busy_config: Option<LookBusyConfiguration>,
752}
753
754#[derive(Debug, Clone, Default, Serialize, Deserialize)]
756pub struct CalendarDTO {
757 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
759 pub is_active: Option<bool>,
760 #[serde(default, skip_serializing_if = "Vec::is_empty")]
762 pub notifications: Vec<CalendarNotification>,
763 #[serde(
766 rename = "locationId",
767 default,
768 skip_serializing_if = "Option::is_none"
769 )]
770 pub location_id: Option<String>,
771 #[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
773 pub group_id: Option<String>,
774 #[serde(rename = "teamMembers", default, skip_serializing_if = "Vec::is_empty")]
777 pub team_members: Vec<TeamMemberResponse>,
778 #[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
781 pub event_type: Option<String>,
782 #[serde(default, skip_serializing_if = "Option::is_none")]
785 pub name: Option<String>,
786 #[serde(default, skip_serializing_if = "Option::is_none")]
787 pub description: Option<String>,
788 #[serde(default, skip_serializing_if = "Option::is_none")]
789 pub slug: Option<String>,
790 #[serde(
791 rename = "widgetSlug",
792 default,
793 skip_serializing_if = "Option::is_none"
794 )]
795 pub widget_slug: Option<String>,
796 #[serde(
799 rename = "calendarType",
800 default,
801 skip_serializing_if = "Option::is_none"
802 )]
803 pub calendar_type: Option<String>,
804 #[serde(
807 rename = "widgetType",
808 default,
809 skip_serializing_if = "Option::is_none"
810 )]
811 pub widget_type: Option<String>,
812 #[serde(
813 rename = "eventTitle",
814 default,
815 skip_serializing_if = "Option::is_none"
816 )]
817 pub event_title: Option<String>,
818 #[serde(
819 rename = "eventColor",
820 default,
821 skip_serializing_if = "Option::is_none"
822 )]
823 pub event_color: Option<String>,
824 #[serde(
827 rename = "meetingLocation",
828 default,
829 skip_serializing_if = "Option::is_none"
830 )]
831 pub meeting_location: Option<String>,
832 #[serde(
834 rename = "locationConfigurations",
835 default,
836 skip_serializing_if = "Vec::is_empty"
837 )]
838 pub location_configurations: Vec<LocationConfigurationResponse>,
839 #[serde(
841 rename = "slotDuration",
842 default,
843 skip_serializing_if = "Option::is_none"
844 )]
845 pub slot_duration: Option<f64>,
846 #[serde(
849 rename = "slotDurationUnit",
850 default,
851 skip_serializing_if = "Option::is_none"
852 )]
853 pub slot_duration_unit: Option<String>,
854 #[serde(
857 rename = "slotInterval",
858 default,
859 skip_serializing_if = "Option::is_none"
860 )]
861 pub slot_interval: Option<f64>,
862 #[serde(
865 rename = "slotIntervalUnit",
866 default,
867 skip_serializing_if = "Option::is_none"
868 )]
869 pub slot_interval_unit: Option<String>,
870 #[serde(
873 rename = "slotBuffer",
874 default,
875 skip_serializing_if = "Option::is_none"
876 )]
877 pub slot_buffer: Option<f64>,
878 #[serde(
881 rename = "slotBufferUnit",
882 default,
883 skip_serializing_if = "Option::is_none"
884 )]
885 pub slot_buffer_unit: Option<String>,
886 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
889 pub pre_buffer: Option<f64>,
890 #[serde(
893 rename = "preBufferUnit",
894 default,
895 skip_serializing_if = "Option::is_none"
896 )]
897 pub pre_buffer_unit: Option<String>,
898 #[serde(
901 rename = "appoinmentPerSlot",
902 default,
903 skip_serializing_if = "Option::is_none"
904 )]
905 pub appoinment_per_slot: Option<f64>,
906 #[serde(
908 rename = "appoinmentPerDay",
909 default,
910 skip_serializing_if = "Option::is_none"
911 )]
912 pub appoinment_per_day: Option<f64>,
913 #[serde(
915 rename = "allowBookingAfter",
916 default,
917 skip_serializing_if = "Option::is_none"
918 )]
919 pub allow_booking_after: Option<f64>,
920 #[serde(
923 rename = "allowBookingAfterUnit",
924 default,
925 skip_serializing_if = "Option::is_none"
926 )]
927 pub allow_booking_after_unit: Option<String>,
928 #[serde(
930 rename = "allowBookingFor",
931 default,
932 skip_serializing_if = "Option::is_none"
933 )]
934 pub allow_booking_for: Option<f64>,
935 #[serde(
938 rename = "allowBookingForUnit",
939 default,
940 skip_serializing_if = "Option::is_none"
941 )]
942 pub allow_booking_for_unit: Option<String>,
943 #[serde(rename = "openHours", default, skip_serializing_if = "Vec::is_empty")]
946 pub open_hours: Vec<OpenHour>,
947 #[serde(
950 rename = "enableRecurring",
951 default,
952 skip_serializing_if = "Option::is_none"
953 )]
954 pub enable_recurring: Option<bool>,
955 #[serde(default, skip_serializing_if = "Option::is_none")]
956 pub recurring: Option<Recurring>,
957 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
958 pub form_id: Option<String>,
959 #[serde(
960 rename = "stickyContact",
961 default,
962 skip_serializing_if = "Option::is_none"
963 )]
964 pub sticky_contact: Option<bool>,
965 #[serde(
966 rename = "isLivePaymentMode",
967 default,
968 skip_serializing_if = "Option::is_none"
969 )]
970 pub is_live_payment_mode: Option<bool>,
971 #[serde(
972 rename = "autoConfirm",
973 default,
974 skip_serializing_if = "Option::is_none"
975 )]
976 pub auto_confirm: Option<bool>,
977 #[serde(
978 rename = "shouldSendAlertEmailsToAssignedMember",
979 default,
980 skip_serializing_if = "Option::is_none"
981 )]
982 pub should_send_alert_emails_to_assigned_member: Option<bool>,
983 #[serde(
984 rename = "alertEmail",
985 default,
986 skip_serializing_if = "Option::is_none"
987 )]
988 pub alert_email: Option<String>,
989 #[serde(
990 rename = "googleInvitationEmails",
991 default,
992 skip_serializing_if = "Option::is_none"
993 )]
994 pub google_invitation_emails: Option<bool>,
995 #[serde(
996 rename = "allowReschedule",
997 default,
998 skip_serializing_if = "Option::is_none"
999 )]
1000 pub allow_reschedule: Option<bool>,
1001 #[serde(
1002 rename = "allowCancellation",
1003 default,
1004 skip_serializing_if = "Option::is_none"
1005 )]
1006 pub allow_cancellation: Option<bool>,
1007 #[serde(
1008 rename = "shouldAssignContactToTeamMember",
1009 default,
1010 skip_serializing_if = "Option::is_none"
1011 )]
1012 pub should_assign_contact_to_team_member: Option<bool>,
1013 #[serde(
1014 rename = "shouldSkipAssigningContactForExisting",
1015 default,
1016 skip_serializing_if = "Option::is_none"
1017 )]
1018 pub should_skip_assigning_contact_for_existing: Option<bool>,
1019 #[serde(default, skip_serializing_if = "Option::is_none")]
1020 pub notes: Option<String>,
1021 #[serde(rename = "pixelId", default, skip_serializing_if = "Option::is_none")]
1022 pub pixel_id: Option<String>,
1023 #[serde(
1025 rename = "formSubmitType",
1026 default,
1027 skip_serializing_if = "Option::is_none"
1028 )]
1029 pub form_submit_type: Option<String>,
1030 #[serde(
1031 rename = "formSubmitRedirectURL",
1032 default,
1033 skip_serializing_if = "Option::is_none"
1034 )]
1035 pub form_submit_redirect_url: Option<String>,
1036 #[serde(
1037 rename = "formSubmitThanksMessage",
1038 default,
1039 skip_serializing_if = "Option::is_none"
1040 )]
1041 pub form_submit_thanks_message: Option<String>,
1042 #[serde(
1046 rename = "availabilityType",
1047 default,
1048 skip_serializing_if = "Option::is_none"
1049 )]
1050 pub availability_type: Option<String>,
1051 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1054 pub availabilities: Vec<Availability>,
1055 #[serde(rename = "guestType", default, skip_serializing_if = "Option::is_none")]
1057 pub guest_type: Option<String>,
1058 #[serde(
1059 rename = "consentLabel",
1060 default,
1061 skip_serializing_if = "Option::is_none"
1062 )]
1063 pub consent_label: Option<String>,
1064 #[serde(
1065 rename = "calendarCoverImage",
1066 default,
1067 skip_serializing_if = "Option::is_none"
1068 )]
1069 pub calendar_cover_image: Option<String>,
1070 #[serde(
1072 rename = "lookBusyConfig",
1073 default,
1074 skip_serializing_if = "Option::is_none"
1075 )]
1076 pub look_busy_config: Option<LookBusyConfiguration>,
1077 #[serde(default, skip_serializing_if = "Option::is_none")]
1080 pub id: Option<String>,
1081}
1082
1083#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1085pub struct CalendarDeleteSuccessfulResponseDTO {
1086 #[serde(default, skip_serializing_if = "Option::is_none")]
1090 pub success: Option<bool>,
1091}
1092
1093#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1095pub struct CalendarEventDTO {
1096 #[serde(default, skip_serializing_if = "Option::is_none")]
1100 pub id: Option<String>,
1101 #[serde(default, skip_serializing_if = "Option::is_none")]
1103 pub address: Option<String>,
1104 #[serde(default, skip_serializing_if = "Option::is_none")]
1108 pub title: Option<String>,
1109 #[serde(
1113 rename = "calendarId",
1114 default,
1115 skip_serializing_if = "Option::is_none"
1116 )]
1117 pub calendar_id: Option<String>,
1118 #[serde(
1122 rename = "locationId",
1123 default,
1124 skip_serializing_if = "Option::is_none"
1125 )]
1126 pub location_id: Option<String>,
1127 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
1131 pub contact_id: Option<String>,
1132 #[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
1136 pub group_id: Option<String>,
1137 #[serde(
1141 rename = "appointmentStatus",
1142 default,
1143 skip_serializing_if = "Option::is_none"
1144 )]
1145 pub appointment_status: Option<String>,
1146 #[serde(
1150 rename = "assignedUserId",
1151 default,
1152 skip_serializing_if = "Option::is_none"
1153 )]
1154 pub assigned_user_id: Option<String>,
1155 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1159 pub users: Vec<String>,
1160 #[serde(default, skip_serializing_if = "Option::is_none")]
1162 pub notes: Option<String>,
1163 #[serde(default, skip_serializing_if = "Option::is_none")]
1165 pub description: Option<String>,
1166 #[serde(
1168 rename = "isRecurring",
1169 default,
1170 skip_serializing_if = "Option::is_none"
1171 )]
1172 pub is_recurring: Option<bool>,
1173 #[serde(default, skip_serializing_if = "Option::is_none")]
1176 pub rrule: Option<String>,
1177 #[serde(default, skip_serializing_if = "Option::is_none")]
1179 pub deleted: Option<bool>,
1180 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
1184 pub start_time: Option<serde_json::Value>,
1185 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
1189 pub end_time: Option<serde_json::Value>,
1190 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
1194 pub date_added: Option<serde_json::Value>,
1195 #[serde(
1199 rename = "dateUpdated",
1200 default,
1201 skip_serializing_if = "Option::is_none"
1202 )]
1203 pub date_updated: Option<serde_json::Value>,
1204 #[serde(
1206 rename = "assignedResources",
1207 default,
1208 skip_serializing_if = "Vec::is_empty"
1209 )]
1210 pub assigned_resources: Vec<String>,
1211 #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
1213 pub created_by: Option<CreatedOrUpdatedBy>,
1214 #[serde(
1216 rename = "masterEventId",
1217 default,
1218 skip_serializing_if = "Option::is_none"
1219 )]
1220 pub master_event_id: Option<String>,
1221}
1222
1223#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1225pub struct CalendarNotification {
1226 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1229 pub type_: Option<String>,
1230 #[serde(
1233 rename = "shouldSendToContact",
1234 default,
1235 skip_serializing_if = "Option::is_none"
1236 )]
1237 pub should_send_to_contact: Option<bool>,
1238 #[serde(
1241 rename = "shouldSendToGuest",
1242 default,
1243 skip_serializing_if = "Option::is_none"
1244 )]
1245 pub should_send_to_guest: Option<bool>,
1246 #[serde(
1249 rename = "shouldSendToUser",
1250 default,
1251 skip_serializing_if = "Option::is_none"
1252 )]
1253 pub should_send_to_user: Option<bool>,
1254 #[serde(
1257 rename = "shouldSendToSelectedUsers",
1258 default,
1259 skip_serializing_if = "Option::is_none"
1260 )]
1261 pub should_send_to_selected_users: Option<bool>,
1262 #[serde(
1266 rename = "selectedUsers",
1267 default,
1268 skip_serializing_if = "Option::is_none"
1269 )]
1270 pub selected_users: Option<String>,
1271}
1272
1273#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1275pub struct CalendarNotificationDeleteResponseDTO {
1276 #[serde(default, skip_serializing_if = "Option::is_none")]
1280 pub message: Option<String>,
1281}
1282
1283#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1285pub struct CalendarNotificationResponseDTO {
1286 #[serde(rename = "_id", default, skip_serializing_if = "Option::is_none")]
1288 pub id: Option<String>,
1289 #[serde(
1292 rename = "receiverType",
1293 default,
1294 skip_serializing_if = "Option::is_none"
1295 )]
1296 pub receiver_type: Option<String>,
1297 #[serde(
1298 rename = "additionalEmailIds",
1299 default,
1300 skip_serializing_if = "Vec::is_empty"
1301 )]
1302 pub additional_email_ids: Vec<String>,
1303 #[serde(
1304 rename = "additionalPhoneNumbers",
1305 default,
1306 skip_serializing_if = "Vec::is_empty"
1307 )]
1308 pub additional_phone_numbers: Vec<String>,
1309 #[serde(default, skip_serializing_if = "Option::is_none")]
1311 pub channel: Option<String>,
1312 #[serde(
1315 rename = "notificationType",
1316 default,
1317 skip_serializing_if = "Option::is_none"
1318 )]
1319 pub notification_type: Option<String>,
1320 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
1321 pub is_active: Option<bool>,
1322 #[serde(
1323 rename = "additionalWhatsappNumbers",
1324 default,
1325 skip_serializing_if = "Vec::is_empty"
1326 )]
1327 pub additional_whatsapp_numbers: Vec<String>,
1328 #[serde(
1329 rename = "templateId",
1330 default,
1331 skip_serializing_if = "Option::is_none"
1332 )]
1333 pub template_id: Option<String>,
1334 #[serde(default, skip_serializing_if = "Option::is_none")]
1335 pub body: Option<String>,
1336 #[serde(default, skip_serializing_if = "Option::is_none")]
1337 pub subject: Option<String>,
1338 #[serde(rename = "afterTime", default, skip_serializing_if = "Vec::is_empty")]
1339 pub after_time: Vec<SchedulesDTO>,
1340 #[serde(rename = "beforeTime", default, skip_serializing_if = "Vec::is_empty")]
1341 pub before_time: Vec<SchedulesDTO>,
1342 #[serde(
1343 rename = "selectedUsers",
1344 default,
1345 skip_serializing_if = "Vec::is_empty"
1346 )]
1347 pub selected_users: Vec<String>,
1348 #[serde(default, skip_serializing_if = "Option::is_none")]
1349 pub deleted: Option<bool>,
1350}
1351
1352#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1354pub struct CalendarResourceByIdResponseDTO {
1355 #[serde(
1359 rename = "locationId",
1360 default,
1361 skip_serializing_if = "Option::is_none"
1362 )]
1363 pub location_id: Option<String>,
1364 #[serde(default, skip_serializing_if = "Option::is_none")]
1368 pub name: Option<String>,
1369 #[serde(
1373 rename = "resourceType",
1374 default,
1375 skip_serializing_if = "Option::is_none"
1376 )]
1377 pub resource_type: Option<String>,
1378 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
1382 pub is_active: Option<bool>,
1383 #[serde(default, skip_serializing_if = "Option::is_none")]
1385 pub description: Option<String>,
1386 #[serde(default, skip_serializing_if = "Option::is_none")]
1388 pub quantity: Option<f64>,
1389 #[serde(
1391 rename = "outOfService",
1392 default,
1393 skip_serializing_if = "Option::is_none"
1394 )]
1395 pub out_of_service: Option<f64>,
1396 #[serde(default, skip_serializing_if = "Option::is_none")]
1398 pub capacity: Option<f64>,
1399 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
1403 pub calendar_ids: Vec<String>,
1404}
1405
1406#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1408pub struct CalendarResourceResponseDTO {
1409 #[serde(
1413 rename = "locationId",
1414 default,
1415 skip_serializing_if = "Option::is_none"
1416 )]
1417 pub location_id: Option<String>,
1418 #[serde(default, skip_serializing_if = "Option::is_none")]
1422 pub name: Option<String>,
1423 #[serde(
1427 rename = "resourceType",
1428 default,
1429 skip_serializing_if = "Option::is_none"
1430 )]
1431 pub resource_type: Option<String>,
1432 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
1436 pub is_active: Option<bool>,
1437 #[serde(default, skip_serializing_if = "Option::is_none")]
1439 pub description: Option<String>,
1440 #[serde(default, skip_serializing_if = "Option::is_none")]
1442 pub quantity: Option<f64>,
1443 #[serde(
1445 rename = "outOfService",
1446 default,
1447 skip_serializing_if = "Option::is_none"
1448 )]
1449 pub out_of_service: Option<f64>,
1450 #[serde(default, skip_serializing_if = "Option::is_none")]
1452 pub capacity: Option<f64>,
1453}
1454
1455#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1457pub struct CalendarUpdateDTO {
1458 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1460 pub notifications: Vec<CalendarNotification>,
1461 #[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
1463 pub group_id: Option<String>,
1464 #[serde(rename = "teamMembers", default, skip_serializing_if = "Vec::is_empty")]
1467 pub team_members: Vec<TeamMember>,
1468 #[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
1471 pub event_type: Option<String>,
1472 #[serde(default, skip_serializing_if = "Option::is_none")]
1473 pub name: Option<String>,
1474 #[serde(default, skip_serializing_if = "Option::is_none")]
1475 pub description: Option<String>,
1476 #[serde(default, skip_serializing_if = "Option::is_none")]
1477 pub slug: Option<String>,
1478 #[serde(
1479 rename = "widgetSlug",
1480 default,
1481 skip_serializing_if = "Option::is_none"
1482 )]
1483 pub widget_slug: Option<String>,
1484 #[serde(
1487 rename = "widgetType",
1488 default,
1489 skip_serializing_if = "Option::is_none"
1490 )]
1491 pub widget_type: Option<String>,
1492 #[serde(
1493 rename = "eventTitle",
1494 default,
1495 skip_serializing_if = "Option::is_none"
1496 )]
1497 pub event_title: Option<String>,
1498 #[serde(
1499 rename = "eventColor",
1500 default,
1501 skip_serializing_if = "Option::is_none"
1502 )]
1503 pub event_color: Option<String>,
1504 #[serde(
1506 rename = "locationConfigurations",
1507 default,
1508 skip_serializing_if = "Vec::is_empty"
1509 )]
1510 pub location_configurations: Vec<LocationConfiguration>,
1511 #[serde(
1514 rename = "meetingLocation",
1515 default,
1516 skip_serializing_if = "Option::is_none"
1517 )]
1518 pub meeting_location: Option<String>,
1519 #[serde(
1521 rename = "slotDuration",
1522 default,
1523 skip_serializing_if = "Option::is_none"
1524 )]
1525 pub slot_duration: Option<f64>,
1526 #[serde(
1529 rename = "slotDurationUnit",
1530 default,
1531 skip_serializing_if = "Option::is_none"
1532 )]
1533 pub slot_duration_unit: Option<String>,
1534 #[serde(
1537 rename = "preBufferUnit",
1538 default,
1539 skip_serializing_if = "Option::is_none"
1540 )]
1541 pub pre_buffer_unit: Option<String>,
1542 #[serde(
1545 rename = "slotInterval",
1546 default,
1547 skip_serializing_if = "Option::is_none"
1548 )]
1549 pub slot_interval: Option<f64>,
1550 #[serde(
1553 rename = "slotIntervalUnit",
1554 default,
1555 skip_serializing_if = "Option::is_none"
1556 )]
1557 pub slot_interval_unit: Option<String>,
1558 #[serde(
1561 rename = "slotBuffer",
1562 default,
1563 skip_serializing_if = "Option::is_none"
1564 )]
1565 pub slot_buffer: Option<f64>,
1566 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
1569 pub pre_buffer: Option<f64>,
1570 #[serde(
1571 rename = "appoinmentPerSlot",
1572 default,
1573 skip_serializing_if = "Option::is_none"
1574 )]
1575 pub appoinment_per_slot: Option<f64>,
1576 #[serde(
1578 rename = "appoinmentPerDay",
1579 default,
1580 skip_serializing_if = "Option::is_none"
1581 )]
1582 pub appoinment_per_day: Option<f64>,
1583 #[serde(
1585 rename = "allowBookingAfter",
1586 default,
1587 skip_serializing_if = "Option::is_none"
1588 )]
1589 pub allow_booking_after: Option<f64>,
1590 #[serde(
1593 rename = "allowBookingAfterUnit",
1594 default,
1595 skip_serializing_if = "Option::is_none"
1596 )]
1597 pub allow_booking_after_unit: Option<String>,
1598 #[serde(
1600 rename = "allowBookingFor",
1601 default,
1602 skip_serializing_if = "Option::is_none"
1603 )]
1604 pub allow_booking_for: Option<f64>,
1605 #[serde(
1608 rename = "allowBookingForUnit",
1609 default,
1610 skip_serializing_if = "Option::is_none"
1611 )]
1612 pub allow_booking_for_unit: Option<String>,
1613 #[serde(rename = "openHours", default, skip_serializing_if = "Vec::is_empty")]
1616 pub open_hours: Vec<OpenHour>,
1617 #[serde(
1620 rename = "enableRecurring",
1621 default,
1622 skip_serializing_if = "Option::is_none"
1623 )]
1624 pub enable_recurring: Option<bool>,
1625 #[serde(default, skip_serializing_if = "Option::is_none")]
1626 pub recurring: Option<Recurring>,
1627 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
1628 pub form_id: Option<String>,
1629 #[serde(
1630 rename = "stickyContact",
1631 default,
1632 skip_serializing_if = "Option::is_none"
1633 )]
1634 pub sticky_contact: Option<bool>,
1635 #[serde(
1636 rename = "isLivePaymentMode",
1637 default,
1638 skip_serializing_if = "Option::is_none"
1639 )]
1640 pub is_live_payment_mode: Option<bool>,
1641 #[serde(
1642 rename = "autoConfirm",
1643 default,
1644 skip_serializing_if = "Option::is_none"
1645 )]
1646 pub auto_confirm: Option<bool>,
1647 #[serde(
1648 rename = "shouldSendAlertEmailsToAssignedMember",
1649 default,
1650 skip_serializing_if = "Option::is_none"
1651 )]
1652 pub should_send_alert_emails_to_assigned_member: Option<bool>,
1653 #[serde(
1654 rename = "alertEmail",
1655 default,
1656 skip_serializing_if = "Option::is_none"
1657 )]
1658 pub alert_email: Option<String>,
1659 #[serde(
1660 rename = "googleInvitationEmails",
1661 default,
1662 skip_serializing_if = "Option::is_none"
1663 )]
1664 pub google_invitation_emails: Option<bool>,
1665 #[serde(
1666 rename = "allowReschedule",
1667 default,
1668 skip_serializing_if = "Option::is_none"
1669 )]
1670 pub allow_reschedule: Option<bool>,
1671 #[serde(
1672 rename = "allowCancellation",
1673 default,
1674 skip_serializing_if = "Option::is_none"
1675 )]
1676 pub allow_cancellation: Option<bool>,
1677 #[serde(
1678 rename = "shouldAssignContactToTeamMember",
1679 default,
1680 skip_serializing_if = "Option::is_none"
1681 )]
1682 pub should_assign_contact_to_team_member: Option<bool>,
1683 #[serde(
1684 rename = "shouldSkipAssigningContactForExisting",
1685 default,
1686 skip_serializing_if = "Option::is_none"
1687 )]
1688 pub should_skip_assigning_contact_for_existing: Option<bool>,
1689 #[serde(default, skip_serializing_if = "Option::is_none")]
1690 pub notes: Option<String>,
1691 #[serde(rename = "pixelId", default, skip_serializing_if = "Option::is_none")]
1692 pub pixel_id: Option<String>,
1693 #[serde(
1695 rename = "formSubmitType",
1696 default,
1697 skip_serializing_if = "Option::is_none"
1698 )]
1699 pub form_submit_type: Option<String>,
1700 #[serde(
1701 rename = "formSubmitRedirectURL",
1702 default,
1703 skip_serializing_if = "Option::is_none"
1704 )]
1705 pub form_submit_redirect_url: Option<String>,
1706 #[serde(
1707 rename = "formSubmitThanksMessage",
1708 default,
1709 skip_serializing_if = "Option::is_none"
1710 )]
1711 pub form_submit_thanks_message: Option<String>,
1712 #[serde(
1716 rename = "availabilityType",
1717 default,
1718 skip_serializing_if = "Option::is_none"
1719 )]
1720 pub availability_type: Option<String>,
1721 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1724 pub availabilities: Vec<UpdateAvailability>,
1725 #[serde(rename = "guestType", default, skip_serializing_if = "Option::is_none")]
1727 pub guest_type: Option<String>,
1728 #[serde(
1729 rename = "consentLabel",
1730 default,
1731 skip_serializing_if = "Option::is_none"
1732 )]
1733 pub consent_label: Option<String>,
1734 #[serde(
1735 rename = "calendarCoverImage",
1736 default,
1737 skip_serializing_if = "Option::is_none"
1738 )]
1739 pub calendar_cover_image: Option<String>,
1740 #[serde(
1742 rename = "lookBusyConfig",
1743 default,
1744 skip_serializing_if = "Option::is_none"
1745 )]
1746 pub look_busy_config: Option<LookBusyConfiguration>,
1747 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
1748 pub is_active: Option<bool>,
1749}
1750
1751#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1753pub struct CalendarsGetSuccessfulResponseDTO {
1754 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1755 pub calendars: Vec<CalendarDTO>,
1756}
1757
1758#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1760pub struct CreateBookingServiceDTO {
1761 pub id: String,
1764 #[serde(rename = "staffId", default, skip_serializing_if = "Option::is_none")]
1766 pub staff_id: Option<String>,
1767 #[serde(default, skip_serializing_if = "Option::is_none")]
1769 pub position: Option<f64>,
1770 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
1772 pub add_ons: Vec<ServiceAddOnDTO>,
1773}
1774
1775#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1777pub struct CreateCalendarNotificationDTO {
1778 #[serde(rename = "receiverType")]
1783 pub receiver_type: String,
1784 pub channel: String,
1788 #[serde(rename = "notificationType")]
1793 pub notification_type: String,
1794 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
1796 pub is_active: Option<bool>,
1797 #[serde(
1799 rename = "templateId",
1800 default,
1801 skip_serializing_if = "Option::is_none"
1802 )]
1803 pub template_id: Option<String>,
1804 #[serde(default, skip_serializing_if = "Option::is_none")]
1806 pub body: Option<String>,
1807 #[serde(default, skip_serializing_if = "Option::is_none")]
1809 pub subject: Option<String>,
1810 #[serde(rename = "afterTime", default, skip_serializing_if = "Vec::is_empty")]
1813 pub after_time: Vec<SchedulesDTO>,
1814 #[serde(rename = "beforeTime", default, skip_serializing_if = "Vec::is_empty")]
1817 pub before_time: Vec<SchedulesDTO>,
1818 #[serde(
1820 rename = "additionalEmailIds",
1821 default,
1822 skip_serializing_if = "Vec::is_empty"
1823 )]
1824 pub additional_email_ids: Vec<String>,
1825 #[serde(
1827 rename = "additionalPhoneNumbers",
1828 default,
1829 skip_serializing_if = "Vec::is_empty"
1830 )]
1831 pub additional_phone_numbers: Vec<String>,
1832 #[serde(
1835 rename = "selectedUsers",
1836 default,
1837 skip_serializing_if = "Vec::is_empty"
1838 )]
1839 pub selected_users: Vec<String>,
1840 #[serde(
1842 rename = "fromAddress",
1843 default,
1844 skip_serializing_if = "Option::is_none"
1845 )]
1846 pub from_address: Option<String>,
1847 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1849 pub from_name: Option<String>,
1850 #[serde(
1852 rename = "fromNumber",
1853 default,
1854 skip_serializing_if = "Option::is_none"
1855 )]
1856 pub from_number: Option<String>,
1857}
1858
1859#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1861pub struct CreateCalendarResourceDTO {
1862 #[serde(rename = "locationId")]
1864 pub location_id: String,
1865 pub name: String,
1867 pub description: String,
1869 pub quantity: f64,
1872 #[serde(rename = "outOfService")]
1875 pub out_of_service: f64,
1876 pub capacity: f64,
1879 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
1883 pub calendar_ids: Vec<String>,
1884}
1885
1886#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1888pub struct CreateEventCalendarScheduleDTO {
1889 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1892 pub rules: Vec<ScheduleRuleDTO>,
1893 pub timezone: String,
1896}
1897
1898#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1900pub struct CreateOrUpdateServiceBookingResponseDTO {
1901 #[serde(rename = "bookingId", default, skip_serializing_if = "Option::is_none")]
1905 pub booking_id: Option<String>,
1906 #[serde(
1910 rename = "locationId",
1911 default,
1912 skip_serializing_if = "Option::is_none"
1913 )]
1914 pub location_id: Option<String>,
1915 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
1919 pub contact_id: Option<String>,
1920 #[serde(
1924 rename = "serviceLocationId",
1925 default,
1926 skip_serializing_if = "Option::is_none"
1927 )]
1928 pub service_location_id: Option<String>,
1929 #[serde(default, skip_serializing_if = "Option::is_none")]
1933 pub title: Option<String>,
1934 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
1938 pub start_time: Option<String>,
1939 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
1943 pub end_time: Option<String>,
1944 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1948 pub services: Vec<ServiceDTO>,
1949 #[serde(default, skip_serializing_if = "Option::is_none")]
1953 pub timezone: Option<String>,
1954 #[serde(default, skip_serializing_if = "Option::is_none")]
1958 pub status: Option<String>,
1959 #[serde(default, skip_serializing_if = "Option::is_none")]
1963 pub deleted: Option<bool>,
1964 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
1968 pub date_added: Option<String>,
1969 #[serde(
1973 rename = "dateUpdated",
1974 default,
1975 skip_serializing_if = "Option::is_none"
1976 )]
1977 pub date_updated: Option<String>,
1978 #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
1982 pub created_by: Option<CreatedOrUpdatedBy>,
1983 #[serde(
1986 rename = "meetingLocation",
1987 default,
1988 skip_serializing_if = "Option::is_none"
1989 )]
1990 pub meeting_location: Option<String>,
1991 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1994 pub messages: Vec<Vec<serde_json::Value>>,
1995}
1996
1997#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1999pub struct CreatePublicServiceBookingDTO {
2000 #[serde(rename = "locationId")]
2003 pub location_id: String,
2004 #[serde(rename = "contactId")]
2007 pub contact_id: String,
2008 #[serde(rename = "startTime")]
2011 pub start_time: String,
2012 #[serde(rename = "endTime")]
2015 pub end_time: String,
2016 pub timezone: String,
2019 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2022 pub services: Vec<CreateBookingServiceDTO>,
2023 #[serde(
2025 rename = "serviceLocationId",
2026 default,
2027 skip_serializing_if = "Option::is_none"
2028 )]
2029 pub service_location_id: Option<String>,
2030 #[serde(
2033 rename = "meetingLocation",
2034 default,
2035 skip_serializing_if = "Option::is_none"
2036 )]
2037 pub meeting_location: Option<String>,
2038 #[serde(default, skip_serializing_if = "Option::is_none")]
2040 pub title: Option<String>,
2041 #[serde(default, skip_serializing_if = "Option::is_none")]
2045 pub status: Option<String>,
2046}
2047
2048#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2050pub struct CreateScheduleDTO {
2051 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2053 pub rules: Vec<ScheduleRuleDTO>,
2054 pub timezone: String,
2057 #[serde(rename = "locationId")]
2060 pub location_id: String,
2061 pub name: String,
2064 #[serde(rename = "userId")]
2067 pub user_id: String,
2068 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
2070 pub calendar_ids: Vec<String>,
2071}
2072
2073#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2075pub struct CreateServiceDTO {
2076 #[serde(rename = "locationId")]
2079 pub location_id: String,
2080 pub name: String,
2083 pub slug: String,
2086 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2089 pub staff: Vec<StaffDTO>,
2090 #[serde(default, skip_serializing_if = "Option::is_none")]
2092 pub description: Option<String>,
2093 #[serde(
2095 rename = "eventColor",
2096 default,
2097 skip_serializing_if = "Option::is_none"
2098 )]
2099 pub event_color: Option<String>,
2100 #[serde(
2102 rename = "coverImage",
2103 default,
2104 skip_serializing_if = "Option::is_none"
2105 )]
2106 pub cover_image: Option<String>,
2107 #[serde(
2109 rename = "serviceCategoryId",
2110 default,
2111 skip_serializing_if = "Option::is_none"
2112 )]
2113 pub service_category_id: Option<String>,
2114 #[serde(default, skip_serializing_if = "Option::is_none")]
2117 pub payment: Option<PaymentDTO>,
2118 #[serde(
2120 rename = "serviceDuration",
2121 default,
2122 skip_serializing_if = "Option::is_none"
2123 )]
2124 pub service_duration: Option<f64>,
2125 #[serde(
2128 rename = "serviceDurationUnit",
2129 default,
2130 skip_serializing_if = "Option::is_none"
2131 )]
2132 pub service_duration_unit: Option<String>,
2133 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
2136 pub pre_buffer: Option<f64>,
2137 #[serde(
2140 rename = "preBufferUnit",
2141 default,
2142 skip_serializing_if = "Option::is_none"
2143 )]
2144 pub pre_buffer_unit: Option<String>,
2145 #[serde(
2148 rename = "postBuffer",
2149 default,
2150 skip_serializing_if = "Option::is_none"
2151 )]
2152 pub post_buffer: Option<f64>,
2153 #[serde(
2156 rename = "postBufferUnit",
2157 default,
2158 skip_serializing_if = "Option::is_none"
2159 )]
2160 pub post_buffer_unit: Option<String>,
2161 #[serde(rename = "isPrivate", default, skip_serializing_if = "Option::is_none")]
2163 pub is_private: Option<bool>,
2164 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
2167 pub form_id: Option<String>,
2168 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2170 pub variations: Vec<CreateServiceVariationDTO>,
2171}
2172
2173#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2175pub struct CreateServiceLocationDTO {
2176 #[serde(rename = "locationId")]
2179 pub location_id: String,
2180 pub name: String,
2183 pub slug: String,
2186 #[serde(default, skip_serializing_if = "Option::is_none")]
2188 pub phone: Option<String>,
2189 #[serde(default, skip_serializing_if = "Option::is_none")]
2192 pub address: Option<String>,
2193 #[serde(
2195 rename = "coverImage",
2196 default,
2197 skip_serializing_if = "Option::is_none"
2198 )]
2199 pub cover_image: Option<String>,
2200 #[serde(
2203 rename = "locationType",
2204 default,
2205 skip_serializing_if = "Option::is_none"
2206 )]
2207 pub location_type: Option<String>,
2208}
2209
2210#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2212pub struct CreateServiceVariationDTO {
2213 #[serde(
2215 rename = "serviceDuration",
2216 default,
2217 skip_serializing_if = "Option::is_none"
2218 )]
2219 pub service_duration: Option<f64>,
2220 #[serde(
2223 rename = "serviceDurationUnit",
2224 default,
2225 skip_serializing_if = "Option::is_none"
2226 )]
2227 pub service_duration_unit: Option<String>,
2228 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
2231 pub pre_buffer: Option<f64>,
2232 #[serde(
2235 rename = "preBufferUnit",
2236 default,
2237 skip_serializing_if = "Option::is_none"
2238 )]
2239 pub pre_buffer_unit: Option<String>,
2240 #[serde(
2243 rename = "postBuffer",
2244 default,
2245 skip_serializing_if = "Option::is_none"
2246 )]
2247 pub post_buffer: Option<f64>,
2248 #[serde(
2251 rename = "postBufferUnit",
2252 default,
2253 skip_serializing_if = "Option::is_none"
2254 )]
2255 pub post_buffer_unit: Option<String>,
2256 #[serde(default, skip_serializing_if = "Option::is_none")]
2258 pub payment: Option<PaymentDTO>,
2259 pub name: String,
2262}
2263
2264#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2266pub struct CreatedOrUpdatedBy {
2267 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2269 pub user_id: Option<String>,
2270 #[serde(default, skip_serializing_if = "Option::is_none")]
2274 pub source: Option<String>,
2275}
2276
2277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2279pub struct DeleteAppointmentSchema {
2280 #[serde(flatten)]
2282 pub extra: serde_json::Map<String, serde_json::Value>,
2283}
2284
2285#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2287pub struct DeleteEventSuccessfulResponseDto {
2288 #[serde(default, skip_serializing_if = "Option::is_none")]
2289 pub succeeded: Option<bool>,
2290}
2291
2292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2294pub struct DeleteNoteSuccessfulResponseDto {
2295 #[serde(default, skip_serializing_if = "Option::is_none")]
2296 pub success: Option<bool>,
2297}
2298
2299#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2301pub struct DeleteServiceBookingResponseDTO {
2302 #[serde(default, skip_serializing_if = "Option::is_none")]
2306 pub success: Option<bool>,
2307 #[serde(default, skip_serializing_if = "Option::is_none")]
2311 pub message: Option<String>,
2312}
2313
2314#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2316pub struct DeleteServiceLocationResponseDTO {
2317 #[serde(default, skip_serializing_if = "Option::is_none")]
2321 pub success: Option<bool>,
2322 #[serde(default, skip_serializing_if = "Option::is_none")]
2324 pub message: Option<String>,
2325}
2326
2327#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2329pub struct DeleteServiceResponseDTO {
2330 #[serde(default, skip_serializing_if = "Option::is_none")]
2334 pub success: Option<bool>,
2335 #[serde(default, skip_serializing_if = "Option::is_none")]
2337 pub message: Option<String>,
2338}
2339
2340#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2342pub struct EventCalendarScheduleResponseDTO {
2343 #[serde(default, skip_serializing_if = "Option::is_none")]
2347 pub timezone: Option<String>,
2348 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2352 pub rules: Vec<ScheduleRuleDTO>,
2353 #[serde(
2357 rename = "calendarId",
2358 default,
2359 skip_serializing_if = "Option::is_none"
2360 )]
2361 pub calendar_id: Option<String>,
2362 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
2364 pub date_added: Option<String>,
2365 #[serde(
2367 rename = "dateUpdated",
2368 default,
2369 skip_serializing_if = "Option::is_none"
2370 )]
2371 pub date_updated: Option<String>,
2372}
2373
2374#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2376pub struct EventCalendarScheduleWrapperDTO {
2377 #[serde(default, skip_serializing_if = "Option::is_none")]
2381 pub schedule: Option<EventCalendarScheduleResponseDTO>,
2382}
2383
2384#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2386pub struct GetAllSchedulesResponseDTO {
2387 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2391 pub schedules: Vec<ScheduleObjectResponseDTO>,
2392}
2393
2394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2396pub struct GetCalendarEventSuccessfulResponseDTO {
2397 #[serde(default, skip_serializing_if = "Option::is_none")]
2398 pub event: Option<CalendarEventDTO>,
2399}
2400
2401#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2403pub struct GetCalendarEventsSuccessfulResponseDTO {
2404 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2405 pub events: Vec<CalendarEventDTO>,
2406}
2407
2408#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2410pub struct GetCreateUpdateNoteSuccessfulResponseDto {
2411 #[serde(default, skip_serializing_if = "Option::is_none")]
2412 pub note: Option<GetNoteSchema>,
2413}
2414
2415#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2417pub struct GetNoteSchema {
2418 #[serde(default, skip_serializing_if = "Option::is_none")]
2419 pub id: Option<String>,
2420 #[serde(default, skip_serializing_if = "Option::is_none")]
2421 pub body: Option<String>,
2422 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2423 pub user_id: Option<String>,
2424 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
2425 pub date_added: Option<String>,
2426 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
2427 pub contact_id: Option<String>,
2428 #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
2429 pub created_by: Option<NoteCreatedBySchema>,
2430}
2431
2432#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2434pub struct GetNotesListSuccessfulResponseDto {
2435 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2436 pub notes: Vec<GetNoteSchema>,
2437 #[serde(rename = "hasMore", default, skip_serializing_if = "Option::is_none")]
2438 pub has_more: Option<bool>,
2439}
2440
2441#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2443pub struct GroupCreateDTO {
2444 #[serde(rename = "locationId")]
2446 pub location_id: String,
2447 pub name: String,
2449 pub description: String,
2451 pub slug: String,
2453 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
2454 pub is_active: Option<bool>,
2455}
2456
2457#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2459pub struct GroupCreateSuccessfulResponseDTO {
2460 #[serde(default, skip_serializing_if = "Option::is_none")]
2461 pub group: Option<GroupDTO>,
2462}
2463
2464#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2466pub struct GroupDTO {
2467 #[serde(
2470 rename = "locationId",
2471 default,
2472 skip_serializing_if = "Option::is_none"
2473 )]
2474 pub location_id: Option<String>,
2475 #[serde(default, skip_serializing_if = "Option::is_none")]
2478 pub name: Option<String>,
2479 #[serde(default, skip_serializing_if = "Option::is_none")]
2482 pub description: Option<String>,
2483 #[serde(default, skip_serializing_if = "Option::is_none")]
2486 pub slug: Option<String>,
2487 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
2488 pub is_active: Option<bool>,
2489 #[serde(default, skip_serializing_if = "Option::is_none")]
2490 pub id: Option<String>,
2491}
2492
2493#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2495pub struct GroupStatusUpdateParams {
2496 #[serde(rename = "isActive")]
2499 pub is_active: bool,
2500}
2501
2502#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2504pub struct GroupSuccessfulResponseDTO {
2505 #[serde(default, skip_serializing_if = "Option::is_none")]
2507 pub success: Option<bool>,
2508}
2509
2510#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2512pub struct GroupUpdateDTO {
2513 pub name: String,
2515 pub description: String,
2517 pub slug: String,
2519}
2520
2521#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2523pub struct Hour {
2524 #[serde(rename = "openHour", default, skip_serializing_if = "Option::is_none")]
2527 pub open_hour: Option<f64>,
2528 #[serde(
2531 rename = "openMinute",
2532 default,
2533 skip_serializing_if = "Option::is_none"
2534 )]
2535 pub open_minute: Option<f64>,
2536 #[serde(rename = "closeHour", default, skip_serializing_if = "Option::is_none")]
2539 pub close_hour: Option<f64>,
2540 #[serde(
2543 rename = "closeMinute",
2544 default,
2545 skip_serializing_if = "Option::is_none"
2546 )]
2547 pub close_minute: Option<f64>,
2548}
2549
2550#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2552pub struct LocationConfiguration {
2553 pub kind: String,
2559 #[serde(default, skip_serializing_if = "Option::is_none")]
2562 pub location: Option<String>,
2563}
2564
2565#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2567pub struct LocationConfigurationResponse {
2568 #[serde(default, skip_serializing_if = "Option::is_none")]
2575 pub kind: Option<String>,
2576 #[serde(default, skip_serializing_if = "Option::is_none")]
2579 pub location: Option<String>,
2580 #[serde(rename = "meetingId", default, skip_serializing_if = "Option::is_none")]
2582 pub meeting_id: Option<String>,
2583}
2584
2585#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2587pub struct LookBusyConfiguration {
2588 #[serde(default, skip_serializing_if = "Option::is_none")]
2592 pub enabled: Option<bool>,
2593 #[serde(
2597 rename = "LookBusyPercentage",
2598 default,
2599 skip_serializing_if = "Option::is_none"
2600 )]
2601 pub look_busy_percentage: Option<f64>,
2602}
2603
2604#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2606pub struct NoteCreatedBySchema {
2607 #[serde(default, skip_serializing_if = "Option::is_none")]
2608 pub id: Option<String>,
2609 #[serde(default, skip_serializing_if = "Option::is_none")]
2610 pub name: Option<String>,
2611}
2612
2613#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2615pub struct NotesDTO {
2616 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2617 pub user_id: Option<String>,
2618 pub body: String,
2621}
2622
2623#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2625pub struct OpenHour {
2626 #[serde(
2629 rename = "daysOfTheWeek",
2630 default,
2631 skip_serializing_if = "Vec::is_empty"
2632 )]
2633 pub days_of_the_week: Vec<f64>,
2634 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2637 pub hours: Vec<Hour>,
2638}
2639
2640#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2642pub struct PaymentDTO {
2643 #[serde(default, skip_serializing_if = "Option::is_none")]
2645 pub amount: Option<f64>,
2646 #[serde(default, skip_serializing_if = "Option::is_none")]
2648 pub deposit: Option<f64>,
2649 #[serde(
2652 rename = "depositType",
2653 default,
2654 skip_serializing_if = "Option::is_none"
2655 )]
2656 pub deposit_type: Option<String>,
2657}
2658
2659#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2661pub struct Recurring {
2662 #[serde(default, skip_serializing_if = "Option::is_none")]
2664 pub freq: Option<String>,
2665 #[serde(default, skip_serializing_if = "Option::is_none")]
2667 pub count: Option<f64>,
2668 #[serde(
2671 rename = "bookingOption",
2672 default,
2673 skip_serializing_if = "Option::is_none"
2674 )]
2675 pub booking_option: Option<String>,
2676 #[serde(
2679 rename = "bookingOverlapDefaultStatus",
2680 default,
2681 skip_serializing_if = "Option::is_none"
2682 )]
2683 pub booking_overlap_default_status: Option<String>,
2684}
2685
2686#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2688pub struct ResourceDeleteResponseDTO {
2689 #[serde(default, skip_serializing_if = "Option::is_none")]
2691 pub success: Option<bool>,
2692}
2693
2694#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2696pub struct ScheduleIntervalDTO {
2697 #[serde(rename = "from", default, skip_serializing_if = "Option::is_none")]
2701 pub from_: Option<String>,
2702 #[serde(default, skip_serializing_if = "Option::is_none")]
2706 pub to: Option<String>,
2707}
2708
2709#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2711pub struct ScheduleObjectResponseDTO {
2712 #[serde(default, skip_serializing_if = "Option::is_none")]
2716 pub id: Option<String>,
2717 #[serde(default, skip_serializing_if = "Option::is_none")]
2721 pub name: Option<String>,
2722 #[serde(
2726 rename = "locationId",
2727 default,
2728 skip_serializing_if = "Option::is_none"
2729 )]
2730 pub location_id: Option<String>,
2731 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2735 pub rules: Vec<ScheduleRuleDTO>,
2736 #[serde(default, skip_serializing_if = "Option::is_none")]
2740 pub timezone: Option<String>,
2741 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
2745 pub date_added: Option<String>,
2746 #[serde(
2750 rename = "dateUpdated",
2751 default,
2752 skip_serializing_if = "Option::is_none"
2753 )]
2754 pub date_updated: Option<String>,
2755 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2759 pub user_id: Option<String>,
2760 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
2762 pub calendar_ids: Vec<String>,
2763 #[serde(default, skip_serializing_if = "Option::is_none")]
2767 pub deleted: Option<bool>,
2768}
2769
2770#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2772pub struct ScheduleResponseDTO {
2773 #[serde(default, skip_serializing_if = "Option::is_none")]
2777 pub schedule: Option<ScheduleObjectResponseDTO>,
2778}
2779
2780#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2782pub struct ScheduleRuleDTO {
2783 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
2788 pub type_: Option<String>,
2789 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2793 pub intervals: Vec<ScheduleIntervalDTO>,
2794 #[serde(default, skip_serializing_if = "Option::is_none")]
2796 pub date: Option<String>,
2797 #[serde(default, skip_serializing_if = "Option::is_none")]
2801 pub day: Option<String>,
2802}
2803
2804#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2806pub struct SchedulesDTO {
2807 #[serde(
2808 rename = "timeOffset",
2809 default,
2810 skip_serializing_if = "Option::is_none"
2811 )]
2812 pub time_offset: Option<f64>,
2813 #[serde(default, skip_serializing_if = "Option::is_none")]
2814 pub unit: Option<String>,
2815}
2816
2817#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2819pub struct ServiceAddOnDTO {
2820 pub id: String,
2823 #[serde(default, skip_serializing_if = "Option::is_none")]
2825 pub quantity: Option<f64>,
2826 #[serde(default, skip_serializing_if = "Option::is_none")]
2828 pub duration: Option<f64>,
2829}
2830
2831#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2833pub struct ServiceAddOnResponseDTO {
2834 #[serde(default, skip_serializing_if = "Option::is_none")]
2838 pub id: Option<String>,
2839 #[serde(default, skip_serializing_if = "Option::is_none")]
2841 pub quantity: Option<f64>,
2842}
2843
2844#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2846pub struct ServiceBookingQueryDTO {
2847 #[serde(
2850 rename = "overrideAvailability",
2851 default,
2852 skip_serializing_if = "Option::is_none"
2853 )]
2854 pub override_availability: Option<bool>,
2855 #[serde(
2857 rename = "skipSchedulingNotice",
2858 default,
2859 skip_serializing_if = "Option::is_none"
2860 )]
2861 pub skip_scheduling_notice: Option<bool>,
2862}
2863
2864#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2866pub struct ServiceBookingResponseDTO {
2867 #[serde(rename = "bookingId", default, skip_serializing_if = "Option::is_none")]
2871 pub booking_id: Option<String>,
2872 #[serde(
2876 rename = "locationId",
2877 default,
2878 skip_serializing_if = "Option::is_none"
2879 )]
2880 pub location_id: Option<String>,
2881 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
2885 pub contact_id: Option<String>,
2886 #[serde(
2890 rename = "serviceLocationId",
2891 default,
2892 skip_serializing_if = "Option::is_none"
2893 )]
2894 pub service_location_id: Option<String>,
2895 #[serde(default, skip_serializing_if = "Option::is_none")]
2899 pub title: Option<String>,
2900 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
2904 pub start_time: Option<String>,
2905 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
2909 pub end_time: Option<String>,
2910 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2914 pub services: Vec<ServiceDTO>,
2915 #[serde(default, skip_serializing_if = "Option::is_none")]
2919 pub timezone: Option<String>,
2920 #[serde(default, skip_serializing_if = "Option::is_none")]
2924 pub status: Option<String>,
2925 #[serde(default, skip_serializing_if = "Option::is_none")]
2929 pub deleted: Option<bool>,
2930 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
2934 pub date_added: Option<String>,
2935 #[serde(
2939 rename = "dateUpdated",
2940 default,
2941 skip_serializing_if = "Option::is_none"
2942 )]
2943 pub date_updated: Option<String>,
2944 #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
2948 pub created_by: Option<CreatedOrUpdatedBy>,
2949 #[serde(
2952 rename = "meetingLocation",
2953 default,
2954 skip_serializing_if = "Option::is_none"
2955 )]
2956 pub meeting_location: Option<String>,
2957}
2958
2959#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2961pub struct ServiceBookingsListResponseDTO {
2962 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2966 pub bookings: Vec<ServiceBookingResponseDTO>,
2967}
2968
2969#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2971pub struct ServiceDTO {
2972 #[serde(default, skip_serializing_if = "Option::is_none")]
2976 pub id: Option<String>,
2977 #[serde(
2981 rename = "serviceCategoryId",
2982 default,
2983 skip_serializing_if = "Option::is_none"
2984 )]
2985 pub service_category_id: Option<String>,
2986 #[serde(
2990 rename = "serviceStaffId",
2991 default,
2992 skip_serializing_if = "Option::is_none"
2993 )]
2994 pub service_staff_id: Option<String>,
2995 #[serde(
2999 rename = "serviceStartTime",
3000 default,
3001 skip_serializing_if = "Option::is_none"
3002 )]
3003 pub service_start_time: Option<String>,
3004 #[serde(
3008 rename = "serviceEndTime",
3009 default,
3010 skip_serializing_if = "Option::is_none"
3011 )]
3012 pub service_end_time: Option<String>,
3013 #[serde(
3015 rename = "serviceResources",
3016 default,
3017 skip_serializing_if = "Vec::is_empty"
3018 )]
3019 pub service_resources: Vec<ServiceResourceDTO>,
3020 #[serde(
3022 rename = "serviceAddOns",
3023 default,
3024 skip_serializing_if = "Vec::is_empty"
3025 )]
3026 pub service_add_ons: Vec<ServiceAddOnResponseDTO>,
3027}
3028
3029#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3031pub struct ServiceLocationListResponseDTO {
3032 #[serde(
3036 rename = "serviceLocations",
3037 default,
3038 skip_serializing_if = "Vec::is_empty"
3039 )]
3040 pub service_locations: Vec<ServiceLocationResponseDTO>,
3041}
3042
3043#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3045pub struct ServiceLocationResponseDTO {
3046 #[serde(default, skip_serializing_if = "Option::is_none")]
3050 pub id: Option<String>,
3051 #[serde(
3055 rename = "locationId",
3056 default,
3057 skip_serializing_if = "Option::is_none"
3058 )]
3059 pub location_id: Option<String>,
3060 #[serde(default, skip_serializing_if = "Option::is_none")]
3064 pub name: Option<String>,
3065 #[serde(default, skip_serializing_if = "Option::is_none")]
3069 pub slug: Option<String>,
3070 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
3072 pub is_active: Option<bool>,
3073 #[serde(rename = "isPrivate", default, skip_serializing_if = "Option::is_none")]
3075 pub is_private: Option<bool>,
3076 #[serde(
3078 rename = "coverImage",
3079 default,
3080 skip_serializing_if = "Option::is_none"
3081 )]
3082 pub cover_image: Option<String>,
3083 #[serde(
3086 rename = "locationType",
3087 default,
3088 skip_serializing_if = "Option::is_none"
3089 )]
3090 pub location_type: Option<String>,
3091 #[serde(default, skip_serializing_if = "Option::is_none")]
3094 pub address: Option<String>,
3095 #[serde(default, skip_serializing_if = "Option::is_none")]
3097 pub phone: Option<String>,
3098}
3099
3100#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3102pub struct ServiceResourceDTO {
3103 #[serde(default, skip_serializing_if = "Option::is_none")]
3107 pub id: Option<String>,
3108}
3109
3110#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3112pub struct ServiceResponseDTO {
3113 #[serde(default, skip_serializing_if = "Option::is_none")]
3117 pub id: Option<String>,
3118 #[serde(
3122 rename = "locationId",
3123 default,
3124 skip_serializing_if = "Option::is_none"
3125 )]
3126 pub location_id: Option<String>,
3127 #[serde(default, skip_serializing_if = "Option::is_none")]
3131 pub name: Option<String>,
3132 #[serde(default, skip_serializing_if = "Option::is_none")]
3134 pub description: Option<String>,
3135 #[serde(default, skip_serializing_if = "Option::is_none")]
3137 pub slug: Option<String>,
3138 #[serde(
3140 rename = "eventColor",
3141 default,
3142 skip_serializing_if = "Option::is_none"
3143 )]
3144 pub event_color: Option<String>,
3145 #[serde(
3147 rename = "coverImage",
3148 default,
3149 skip_serializing_if = "Option::is_none"
3150 )]
3151 pub cover_image: Option<String>,
3152 #[serde(
3154 rename = "serviceCategoryId",
3155 default,
3156 skip_serializing_if = "Option::is_none"
3157 )]
3158 pub service_category_id: Option<String>,
3159 #[serde(default, skip_serializing_if = "Option::is_none")]
3161 pub payment: Option<PaymentDTO>,
3162 #[serde(
3164 rename = "serviceDuration",
3165 default,
3166 skip_serializing_if = "Option::is_none"
3167 )]
3168 pub service_duration: Option<f64>,
3169 #[serde(
3172 rename = "serviceDurationUnit",
3173 default,
3174 skip_serializing_if = "Option::is_none"
3175 )]
3176 pub service_duration_unit: Option<String>,
3177 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
3180 pub pre_buffer: Option<f64>,
3181 #[serde(
3184 rename = "preBufferUnit",
3185 default,
3186 skip_serializing_if = "Option::is_none"
3187 )]
3188 pub pre_buffer_unit: Option<String>,
3189 #[serde(
3192 rename = "postBuffer",
3193 default,
3194 skip_serializing_if = "Option::is_none"
3195 )]
3196 pub post_buffer: Option<f64>,
3197 #[serde(
3200 rename = "postBufferUnit",
3201 default,
3202 skip_serializing_if = "Option::is_none"
3203 )]
3204 pub post_buffer_unit: Option<String>,
3205 #[serde(rename = "isPrivate", default, skip_serializing_if = "Option::is_none")]
3207 pub is_private: Option<bool>,
3208 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
3211 pub form_id: Option<String>,
3212 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3214 pub variations: Vec<ServiceVariationDTO>,
3215 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3217 pub staff: Vec<StaffDTO>,
3218}
3219
3220#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3222pub struct ServiceResponseWrapperDTO {
3223 #[serde(default, skip_serializing_if = "Option::is_none")]
3227 pub service: Option<ServiceResponseDTO>,
3228}
3229
3230#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3232pub struct ServiceVariationDTO {
3233 #[serde(default, skip_serializing_if = "Option::is_none")]
3237 pub id: Option<String>,
3238 #[serde(default, skip_serializing_if = "Option::is_none")]
3242 pub name: Option<String>,
3243 #[serde(
3245 rename = "serviceDuration",
3246 default,
3247 skip_serializing_if = "Option::is_none"
3248 )]
3249 pub service_duration: Option<f64>,
3250 #[serde(
3253 rename = "serviceDurationUnit",
3254 default,
3255 skip_serializing_if = "Option::is_none"
3256 )]
3257 pub service_duration_unit: Option<String>,
3258 #[serde(default, skip_serializing_if = "Option::is_none")]
3260 pub payment: Option<PaymentDTO>,
3261 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
3264 pub pre_buffer: Option<f64>,
3265 #[serde(
3268 rename = "preBufferUnit",
3269 default,
3270 skip_serializing_if = "Option::is_none"
3271 )]
3272 pub pre_buffer_unit: Option<String>,
3273 #[serde(
3276 rename = "postBuffer",
3277 default,
3278 skip_serializing_if = "Option::is_none"
3279 )]
3280 pub post_buffer: Option<f64>,
3281 #[serde(
3284 rename = "postBufferUnit",
3285 default,
3286 skip_serializing_if = "Option::is_none"
3287 )]
3288 pub post_buffer_unit: Option<String>,
3289}
3290
3291#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3293pub struct ServicesListResponseDTO {
3294 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3298 pub services: Vec<ServiceResponseDTO>,
3299}
3300
3301#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3303pub struct SlotsSchema {
3304 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3307 pub slots: Vec<String>,
3308}
3309
3310#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3312pub struct StaffDTO {
3313 #[serde(default, skip_serializing_if = "Option::is_none")]
3317 pub id: Option<String>,
3318}
3319
3320#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3322pub struct TeamMember {
3323 #[serde(rename = "userId")]
3325 pub user_id: String,
3326 #[serde(default, skip_serializing_if = "Option::is_none")]
3328 pub priority: Option<String>,
3329 #[serde(
3332 rename = "meetingLocationType",
3333 default,
3334 skip_serializing_if = "Option::is_none"
3335 )]
3336 pub meeting_location_type: Option<String>,
3337 #[serde(
3339 rename = "meetingLocation",
3340 default,
3341 skip_serializing_if = "Option::is_none"
3342 )]
3343 pub meeting_location: Option<String>,
3344 #[serde(rename = "isPrimary", default, skip_serializing_if = "Option::is_none")]
3347 pub is_primary: Option<bool>,
3348 #[serde(
3352 rename = "locationConfigurations",
3353 default,
3354 skip_serializing_if = "Vec::is_empty"
3355 )]
3356 pub location_configurations: Vec<LocationConfiguration>,
3357}
3358
3359#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3361pub struct TeamMemberResponse {
3362 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
3365 pub user_id: Option<String>,
3366 #[serde(default, skip_serializing_if = "Option::is_none")]
3368 pub priority: Option<String>,
3369 #[serde(
3372 rename = "meetingLocationType",
3373 default,
3374 skip_serializing_if = "Option::is_none"
3375 )]
3376 pub meeting_location_type: Option<String>,
3377 #[serde(
3379 rename = "meetingLocation",
3380 default,
3381 skip_serializing_if = "Option::is_none"
3382 )]
3383 pub meeting_location: Option<String>,
3384 #[serde(rename = "isPrimary", default, skip_serializing_if = "Option::is_none")]
3387 pub is_primary: Option<bool>,
3388 #[serde(
3390 rename = "locationConfigurations",
3391 default,
3392 skip_serializing_if = "Vec::is_empty"
3393 )]
3394 pub location_configurations: Vec<LocationConfigurationResponse>,
3395}
3396
3397#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3399pub struct UpdateAvailability {
3400 pub date: String,
3403 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3405 pub hours: Vec<Hour>,
3406 #[serde(default, skip_serializing_if = "Option::is_none")]
3407 pub deleted: Option<bool>,
3408 #[serde(default, skip_serializing_if = "Option::is_none")]
3411 pub id: Option<String>,
3412}
3413
3414#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3416pub struct UpdateCalendarNotificationsDTO {
3417 #[serde(
3421 rename = "receiverType",
3422 default,
3423 skip_serializing_if = "Option::is_none"
3424 )]
3425 pub receiver_type: Option<String>,
3426 #[serde(
3428 rename = "additionalEmailIds",
3429 default,
3430 skip_serializing_if = "Vec::is_empty"
3431 )]
3432 pub additional_email_ids: Vec<String>,
3433 #[serde(
3435 rename = "additionalPhoneNumbers",
3436 default,
3437 skip_serializing_if = "Vec::is_empty"
3438 )]
3439 pub additional_phone_numbers: Vec<String>,
3440 #[serde(
3443 rename = "selectedUsers",
3444 default,
3445 skip_serializing_if = "Vec::is_empty"
3446 )]
3447 pub selected_users: Vec<String>,
3448 #[serde(default, skip_serializing_if = "Option::is_none")]
3451 pub channel: Option<String>,
3452 #[serde(
3456 rename = "notificationType",
3457 default,
3458 skip_serializing_if = "Option::is_none"
3459 )]
3460 pub notification_type: Option<String>,
3461 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
3463 pub is_active: Option<bool>,
3464 #[serde(default, skip_serializing_if = "Option::is_none")]
3466 pub deleted: Option<bool>,
3467 #[serde(
3469 rename = "templateId",
3470 default,
3471 skip_serializing_if = "Option::is_none"
3472 )]
3473 pub template_id: Option<String>,
3474 #[serde(default, skip_serializing_if = "Option::is_none")]
3476 pub body: Option<String>,
3477 #[serde(default, skip_serializing_if = "Option::is_none")]
3479 pub subject: Option<String>,
3480 #[serde(rename = "afterTime", default, skip_serializing_if = "Vec::is_empty")]
3483 pub after_time: Vec<SchedulesDTO>,
3484 #[serde(rename = "beforeTime", default, skip_serializing_if = "Vec::is_empty")]
3487 pub before_time: Vec<SchedulesDTO>,
3488 #[serde(
3490 rename = "fromAddress",
3491 default,
3492 skip_serializing_if = "Option::is_none"
3493 )]
3494 pub from_address: Option<String>,
3495 #[serde(
3497 rename = "fromNumber",
3498 default,
3499 skip_serializing_if = "Option::is_none"
3500 )]
3501 pub from_number: Option<String>,
3502 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
3504 pub from_name: Option<String>,
3505}
3506
3507#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3509pub struct UpdateCalendarResourceDTO {
3510 #[serde(
3511 rename = "locationId",
3512 default,
3513 skip_serializing_if = "Option::is_none"
3514 )]
3515 pub location_id: Option<String>,
3516 #[serde(default, skip_serializing_if = "Option::is_none")]
3517 pub name: Option<String>,
3518 #[serde(default, skip_serializing_if = "Option::is_none")]
3519 pub description: Option<String>,
3520 #[serde(default, skip_serializing_if = "Option::is_none")]
3522 pub quantity: Option<f64>,
3523 #[serde(
3525 rename = "outOfService",
3526 default,
3527 skip_serializing_if = "Option::is_none"
3528 )]
3529 pub out_of_service: Option<f64>,
3530 #[serde(default, skip_serializing_if = "Option::is_none")]
3532 pub capacity: Option<f64>,
3533 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
3536 pub calendar_ids: Vec<String>,
3537 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
3538 pub is_active: Option<bool>,
3539}
3540
3541#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3543pub struct UpdateEventCalendarScheduleDTO {
3544 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3546 pub rules: Vec<ScheduleRuleDTO>,
3547 #[serde(default, skip_serializing_if = "Option::is_none")]
3549 pub timezone: Option<String>,
3550}
3551
3552#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3554pub struct UpdateScheduleDTO {
3555 #[serde(default, skip_serializing_if = "Option::is_none")]
3557 pub name: Option<String>,
3558 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3560 pub rules: Vec<ScheduleRuleDTO>,
3561 #[serde(default, skip_serializing_if = "Option::is_none")]
3563 pub timezone: Option<String>,
3564}
3565
3566#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3568pub struct UpdateServiceBookingDTO {
3569 #[serde(
3571 rename = "serviceLocationId",
3572 default,
3573 skip_serializing_if = "Option::is_none"
3574 )]
3575 pub service_location_id: Option<String>,
3576 #[serde(
3579 rename = "meetingLocation",
3580 default,
3581 skip_serializing_if = "Option::is_none"
3582 )]
3583 pub meeting_location: Option<String>,
3584 #[serde(default, skip_serializing_if = "Option::is_none")]
3586 pub title: Option<String>,
3587 #[serde(default, skip_serializing_if = "Option::is_none")]
3590 pub status: Option<String>,
3591 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
3593 pub start_time: Option<String>,
3594 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
3596 pub end_time: Option<String>,
3597 #[serde(default, skip_serializing_if = "Option::is_none")]
3599 pub timezone: Option<String>,
3600 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3603 pub services: Vec<CreateBookingServiceDTO>,
3604}
3605
3606#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3608pub struct UpdateServiceDTO {
3609 #[serde(default, skip_serializing_if = "Option::is_none")]
3611 pub name: Option<String>,
3612 #[serde(default, skip_serializing_if = "Option::is_none")]
3614 pub description: Option<String>,
3615 #[serde(default, skip_serializing_if = "Option::is_none")]
3617 pub slug: Option<String>,
3618 #[serde(
3620 rename = "eventColor",
3621 default,
3622 skip_serializing_if = "Option::is_none"
3623 )]
3624 pub event_color: Option<String>,
3625 #[serde(
3627 rename = "coverImage",
3628 default,
3629 skip_serializing_if = "Option::is_none"
3630 )]
3631 pub cover_image: Option<String>,
3632 #[serde(
3634 rename = "serviceCategoryId",
3635 default,
3636 skip_serializing_if = "Option::is_none"
3637 )]
3638 pub service_category_id: Option<String>,
3639 #[serde(default, skip_serializing_if = "Option::is_none")]
3641 pub payment: Option<PaymentDTO>,
3642 #[serde(
3644 rename = "serviceDuration",
3645 default,
3646 skip_serializing_if = "Option::is_none"
3647 )]
3648 pub service_duration: Option<f64>,
3649 #[serde(
3652 rename = "serviceDurationUnit",
3653 default,
3654 skip_serializing_if = "Option::is_none"
3655 )]
3656 pub service_duration_unit: Option<String>,
3657 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
3660 pub pre_buffer: Option<f64>,
3661 #[serde(
3664 rename = "preBufferUnit",
3665 default,
3666 skip_serializing_if = "Option::is_none"
3667 )]
3668 pub pre_buffer_unit: Option<String>,
3669 #[serde(
3672 rename = "postBuffer",
3673 default,
3674 skip_serializing_if = "Option::is_none"
3675 )]
3676 pub post_buffer: Option<f64>,
3677 #[serde(
3680 rename = "postBufferUnit",
3681 default,
3682 skip_serializing_if = "Option::is_none"
3683 )]
3684 pub post_buffer_unit: Option<String>,
3685 #[serde(rename = "isPrivate", default, skip_serializing_if = "Option::is_none")]
3687 pub is_private: Option<bool>,
3688 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
3691 pub form_id: Option<String>,
3692 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3694 pub staff: Vec<StaffDTO>,
3695 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3698 pub variations: Vec<UpdateServiceVariationDTO>,
3699}
3700
3701#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3703pub struct UpdateServiceLocationDTO {
3704 #[serde(default, skip_serializing_if = "Option::is_none")]
3706 pub name: Option<String>,
3707 #[serde(default, skip_serializing_if = "Option::is_none")]
3709 pub slug: Option<String>,
3710 #[serde(default, skip_serializing_if = "Option::is_none")]
3712 pub phone: Option<String>,
3713 #[serde(default, skip_serializing_if = "Option::is_none")]
3716 pub address: Option<String>,
3717 #[serde(
3719 rename = "coverImage",
3720 default,
3721 skip_serializing_if = "Option::is_none"
3722 )]
3723 pub cover_image: Option<String>,
3724 #[serde(
3727 rename = "locationType",
3728 default,
3729 skip_serializing_if = "Option::is_none"
3730 )]
3731 pub location_type: Option<String>,
3732}
3733
3734#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3736pub struct UpdateServiceVariationDTO {
3737 #[serde(
3739 rename = "serviceDuration",
3740 default,
3741 skip_serializing_if = "Option::is_none"
3742 )]
3743 pub service_duration: Option<f64>,
3744 #[serde(
3747 rename = "serviceDurationUnit",
3748 default,
3749 skip_serializing_if = "Option::is_none"
3750 )]
3751 pub service_duration_unit: Option<String>,
3752 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
3755 pub pre_buffer: Option<f64>,
3756 #[serde(
3759 rename = "preBufferUnit",
3760 default,
3761 skip_serializing_if = "Option::is_none"
3762 )]
3763 pub pre_buffer_unit: Option<String>,
3764 #[serde(
3767 rename = "postBuffer",
3768 default,
3769 skip_serializing_if = "Option::is_none"
3770 )]
3771 pub post_buffer: Option<f64>,
3772 #[serde(
3775 rename = "postBufferUnit",
3776 default,
3777 skip_serializing_if = "Option::is_none"
3778 )]
3779 pub post_buffer_unit: Option<String>,
3780 #[serde(default, skip_serializing_if = "Option::is_none")]
3782 pub payment: Option<PaymentDTO>,
3783 #[serde(default, skip_serializing_if = "Option::is_none")]
3785 pub id: Option<String>,
3786 #[serde(default, skip_serializing_if = "Option::is_none")]
3788 pub name: Option<String>,
3789}
3790
3791#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3793pub struct ValidateGroupSlugPostBody {
3794 #[serde(rename = "locationId")]
3797 pub location_id: String,
3798 pub slug: String,
3801}
3802
3803#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3805pub struct ValidateGroupSlugSuccessResponseDTO {
3806 #[serde(default, skip_serializing_if = "Option::is_none")]
3809 pub available: Option<bool>,
3810}