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 AllGroupsSuccessfulResponseDTO {
16 #[serde(default, skip_serializing_if = "Vec::is_empty")]
17 pub groups: Vec<GroupDTO>,
18}
19
20#[derive(Debug, Clone, Default, Serialize, Deserialize)]
22pub struct AppointmentCreateSchema {
23 #[serde(default, skip_serializing_if = "Option::is_none")]
25 pub title: Option<String>,
26 #[serde(
30 rename = "meetingLocationType",
31 default,
32 skip_serializing_if = "Option::is_none"
33 )]
34 pub meeting_location_type: Option<String>,
35 #[serde(
38 rename = "meetingLocationId",
39 default,
40 skip_serializing_if = "Option::is_none"
41 )]
42 pub meeting_location_id: Option<String>,
43 #[serde(
46 rename = "overrideLocationConfig",
47 default,
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub override_location_config: Option<bool>,
51 #[serde(
54 rename = "appointmentStatus",
55 default,
56 skip_serializing_if = "Option::is_none"
57 )]
58 pub appointment_status: Option<String>,
59 #[serde(
61 rename = "assignedUserId",
62 default,
63 skip_serializing_if = "Option::is_none"
64 )]
65 pub assigned_user_id: Option<String>,
66 #[serde(default, skip_serializing_if = "Option::is_none")]
68 pub description: Option<String>,
69 #[serde(default, skip_serializing_if = "Option::is_none")]
71 pub address: Option<String>,
72 #[serde(
74 rename = "ignoreDateRange",
75 default,
76 skip_serializing_if = "Option::is_none"
77 )]
78 pub ignore_date_range: Option<bool>,
79 #[serde(rename = "toNotify", default, skip_serializing_if = "Option::is_none")]
81 pub to_notify: Option<bool>,
82 #[serde(
85 rename = "ignoreFreeSlotValidation",
86 default,
87 skip_serializing_if = "Option::is_none"
88 )]
89 pub ignore_free_slot_validation: Option<bool>,
90 #[serde(default, skip_serializing_if = "Option::is_none")]
94 pub rrule: Option<String>,
95 #[serde(rename = "calendarId")]
98 pub calendar_id: String,
99 #[serde(rename = "locationId")]
102 pub location_id: String,
103 #[serde(rename = "contactId")]
106 pub contact_id: String,
107 #[serde(rename = "startTime")]
110 pub start_time: String,
111 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
113 pub end_time: Option<String>,
114}
115
116#[derive(Debug, Clone, Default, Serialize, Deserialize)]
118pub struct AppointmentEditSchema {
119 #[serde(default, skip_serializing_if = "Option::is_none")]
121 pub title: Option<String>,
122 #[serde(
126 rename = "meetingLocationType",
127 default,
128 skip_serializing_if = "Option::is_none"
129 )]
130 pub meeting_location_type: Option<String>,
131 #[serde(
134 rename = "meetingLocationId",
135 default,
136 skip_serializing_if = "Option::is_none"
137 )]
138 pub meeting_location_id: Option<String>,
139 #[serde(
142 rename = "overrideLocationConfig",
143 default,
144 skip_serializing_if = "Option::is_none"
145 )]
146 pub override_location_config: Option<bool>,
147 #[serde(
150 rename = "appointmentStatus",
151 default,
152 skip_serializing_if = "Option::is_none"
153 )]
154 pub appointment_status: Option<String>,
155 #[serde(
157 rename = "assignedUserId",
158 default,
159 skip_serializing_if = "Option::is_none"
160 )]
161 pub assigned_user_id: Option<String>,
162 #[serde(default, skip_serializing_if = "Option::is_none")]
164 pub description: Option<String>,
165 #[serde(default, skip_serializing_if = "Option::is_none")]
167 pub address: Option<String>,
168 #[serde(
170 rename = "ignoreDateRange",
171 default,
172 skip_serializing_if = "Option::is_none"
173 )]
174 pub ignore_date_range: Option<bool>,
175 #[serde(rename = "toNotify", default, skip_serializing_if = "Option::is_none")]
177 pub to_notify: Option<bool>,
178 #[serde(
181 rename = "ignoreFreeSlotValidation",
182 default,
183 skip_serializing_if = "Option::is_none"
184 )]
185 pub ignore_free_slot_validation: Option<bool>,
186 #[serde(default, skip_serializing_if = "Option::is_none")]
190 pub rrule: Option<String>,
191 #[serde(
193 rename = "calendarId",
194 default,
195 skip_serializing_if = "Option::is_none"
196 )]
197 pub calendar_id: Option<String>,
198 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
200 pub start_time: Option<String>,
201 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
203 pub end_time: Option<String>,
204}
205
206#[derive(Debug, Clone, Default, Serialize, Deserialize)]
208pub struct AppointmentSchemaResponse {
209 #[serde(rename = "calendarId")]
212 pub calendar_id: String,
213 #[serde(rename = "locationId")]
216 pub location_id: String,
217 #[serde(rename = "contactId")]
220 pub contact_id: String,
221 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
223 pub start_time: Option<String>,
224 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
226 pub end_time: Option<String>,
227 #[serde(default, skip_serializing_if = "Option::is_none")]
229 pub title: Option<String>,
230 #[serde(
232 rename = "meetingLocationType",
233 default,
234 skip_serializing_if = "Option::is_none"
235 )]
236 pub meeting_location_type: Option<String>,
237 #[serde(
240 rename = "appointmentStatus",
241 default,
242 skip_serializing_if = "Option::is_none"
243 )]
244 pub appointment_status: Option<String>,
245 #[serde(
247 rename = "assignedUserId",
248 default,
249 skip_serializing_if = "Option::is_none"
250 )]
251 pub assigned_user_id: Option<String>,
252 #[serde(default, skip_serializing_if = "Option::is_none")]
254 pub address: Option<String>,
255 #[serde(
257 rename = "isRecurring",
258 default,
259 skip_serializing_if = "Option::is_none"
260 )]
261 pub is_recurring: Option<bool>,
262 #[serde(default, skip_serializing_if = "Option::is_none")]
264 pub rrule: Option<String>,
265 #[serde(rename = "dateAdded")]
268 pub date_added: String,
269 #[serde(rename = "dateUpdated")]
272 pub date_updated: String,
273 pub id: String,
276}
277
278#[derive(Debug, Clone, Default, Serialize, Deserialize)]
280pub struct Availability {
281 pub date: String,
285 #[serde(default, skip_serializing_if = "Vec::is_empty")]
287 pub hours: Vec<Hour>,
288 #[serde(default, skip_serializing_if = "Option::is_none")]
289 pub deleted: Option<bool>,
290}
291
292#[derive(Debug, Clone, Default, Serialize, Deserialize)]
294pub struct BlockSlotCreateRequestDTO {
295 #[serde(default, skip_serializing_if = "Option::is_none")]
297 pub title: Option<String>,
298 #[serde(rename = "calendarId")]
301 pub calendar_id: String,
302 #[serde(
304 rename = "assignedUserId",
305 default,
306 skip_serializing_if = "Option::is_none"
307 )]
308 pub assigned_user_id: Option<String>,
309 #[serde(rename = "locationId")]
312 pub location_id: String,
313 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
315 pub start_time: Option<String>,
316 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
318 pub end_time: Option<String>,
319}
320
321#[derive(Debug, Clone, Default, Serialize, Deserialize)]
323pub struct BlockSlotEditRequestDTO {
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 BlockedSlotSuccessfulResponseDto {
353 pub id: String,
356 #[serde(rename = "locationId")]
359 pub location_id: String,
360 pub title: String,
363 #[serde(rename = "startTime")]
366 pub start_time: serde_json::Value,
367 #[serde(rename = "endTime")]
370 pub end_time: serde_json::Value,
371 #[serde(
373 rename = "calendarId",
374 default,
375 skip_serializing_if = "Option::is_none"
376 )]
377 pub calendar_id: Option<String>,
378 #[serde(
380 rename = "assignedUserId",
381 default,
382 skip_serializing_if = "Option::is_none"
383 )]
384 pub assigned_user_id: Option<String>,
385}
386
387#[derive(Debug, Clone, Default, Serialize, Deserialize)]
389pub struct CalendarByIdSuccessfulResponseDTO {
390 pub calendar: CalendarDTO,
392}
393
394#[derive(Debug, Clone, Default, Serialize, Deserialize)]
396pub struct CalendarCreateDTO {
397 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
399 pub is_active: Option<bool>,
400 #[serde(default, skip_serializing_if = "Vec::is_empty")]
402 pub notifications: Vec<CalendarNotification>,
403 #[serde(rename = "locationId")]
405 pub location_id: String,
406 #[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
408 pub group_id: Option<String>,
409 #[serde(rename = "teamMembers", default, skip_serializing_if = "Vec::is_empty")]
412 pub team_members: Vec<TeamMember>,
413 #[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
416 pub event_type: Option<String>,
417 pub name: String,
419 #[serde(default, skip_serializing_if = "Option::is_none")]
420 pub description: Option<String>,
421 #[serde(default, skip_serializing_if = "Option::is_none")]
422 pub slug: Option<String>,
423 #[serde(
424 rename = "widgetSlug",
425 default,
426 skip_serializing_if = "Option::is_none"
427 )]
428 pub widget_slug: Option<String>,
429 #[serde(
432 rename = "calendarType",
433 default,
434 skip_serializing_if = "Option::is_none"
435 )]
436 pub calendar_type: Option<String>,
437 #[serde(
440 rename = "widgetType",
441 default,
442 skip_serializing_if = "Option::is_none"
443 )]
444 pub widget_type: Option<String>,
445 #[serde(
446 rename = "eventTitle",
447 default,
448 skip_serializing_if = "Option::is_none"
449 )]
450 pub event_title: Option<String>,
451 #[serde(
452 rename = "eventColor",
453 default,
454 skip_serializing_if = "Option::is_none"
455 )]
456 pub event_color: Option<String>,
457 #[serde(
460 rename = "meetingLocation",
461 default,
462 skip_serializing_if = "Option::is_none"
463 )]
464 pub meeting_location: Option<String>,
465 #[serde(
467 rename = "locationConfigurations",
468 default,
469 skip_serializing_if = "Vec::is_empty"
470 )]
471 pub location_configurations: Vec<LocationConfiguration>,
472 #[serde(
474 rename = "slotDuration",
475 default,
476 skip_serializing_if = "Option::is_none"
477 )]
478 pub slot_duration: Option<f64>,
479 #[serde(
482 rename = "slotDurationUnit",
483 default,
484 skip_serializing_if = "Option::is_none"
485 )]
486 pub slot_duration_unit: Option<String>,
487 #[serde(
490 rename = "slotInterval",
491 default,
492 skip_serializing_if = "Option::is_none"
493 )]
494 pub slot_interval: Option<f64>,
495 #[serde(
498 rename = "slotIntervalUnit",
499 default,
500 skip_serializing_if = "Option::is_none"
501 )]
502 pub slot_interval_unit: Option<String>,
503 #[serde(
506 rename = "slotBuffer",
507 default,
508 skip_serializing_if = "Option::is_none"
509 )]
510 pub slot_buffer: Option<f64>,
511 #[serde(
514 rename = "slotBufferUnit",
515 default,
516 skip_serializing_if = "Option::is_none"
517 )]
518 pub slot_buffer_unit: Option<String>,
519 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
522 pub pre_buffer: Option<f64>,
523 #[serde(
526 rename = "preBufferUnit",
527 default,
528 skip_serializing_if = "Option::is_none"
529 )]
530 pub pre_buffer_unit: Option<String>,
531 #[serde(
534 rename = "appoinmentPerSlot",
535 default,
536 skip_serializing_if = "Option::is_none"
537 )]
538 pub appoinment_per_slot: Option<f64>,
539 #[serde(
541 rename = "appoinmentPerDay",
542 default,
543 skip_serializing_if = "Option::is_none"
544 )]
545 pub appoinment_per_day: Option<f64>,
546 #[serde(
548 rename = "allowBookingAfter",
549 default,
550 skip_serializing_if = "Option::is_none"
551 )]
552 pub allow_booking_after: Option<f64>,
553 #[serde(
556 rename = "allowBookingAfterUnit",
557 default,
558 skip_serializing_if = "Option::is_none"
559 )]
560 pub allow_booking_after_unit: Option<String>,
561 #[serde(
563 rename = "allowBookingFor",
564 default,
565 skip_serializing_if = "Option::is_none"
566 )]
567 pub allow_booking_for: Option<f64>,
568 #[serde(
571 rename = "allowBookingForUnit",
572 default,
573 skip_serializing_if = "Option::is_none"
574 )]
575 pub allow_booking_for_unit: Option<String>,
576 #[serde(rename = "openHours", default, skip_serializing_if = "Vec::is_empty")]
579 pub open_hours: Vec<OpenHour>,
580 #[serde(
583 rename = "enableRecurring",
584 default,
585 skip_serializing_if = "Option::is_none"
586 )]
587 pub enable_recurring: Option<bool>,
588 #[serde(default, skip_serializing_if = "Option::is_none")]
589 pub recurring: Option<Recurring>,
590 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
591 pub form_id: Option<String>,
592 #[serde(
593 rename = "stickyContact",
594 default,
595 skip_serializing_if = "Option::is_none"
596 )]
597 pub sticky_contact: Option<bool>,
598 #[serde(
599 rename = "isLivePaymentMode",
600 default,
601 skip_serializing_if = "Option::is_none"
602 )]
603 pub is_live_payment_mode: Option<bool>,
604 #[serde(
605 rename = "autoConfirm",
606 default,
607 skip_serializing_if = "Option::is_none"
608 )]
609 pub auto_confirm: Option<bool>,
610 #[serde(
611 rename = "shouldSendAlertEmailsToAssignedMember",
612 default,
613 skip_serializing_if = "Option::is_none"
614 )]
615 pub should_send_alert_emails_to_assigned_member: Option<bool>,
616 #[serde(
617 rename = "alertEmail",
618 default,
619 skip_serializing_if = "Option::is_none"
620 )]
621 pub alert_email: Option<String>,
622 #[serde(
623 rename = "googleInvitationEmails",
624 default,
625 skip_serializing_if = "Option::is_none"
626 )]
627 pub google_invitation_emails: Option<bool>,
628 #[serde(
629 rename = "allowReschedule",
630 default,
631 skip_serializing_if = "Option::is_none"
632 )]
633 pub allow_reschedule: Option<bool>,
634 #[serde(
635 rename = "allowCancellation",
636 default,
637 skip_serializing_if = "Option::is_none"
638 )]
639 pub allow_cancellation: Option<bool>,
640 #[serde(
641 rename = "shouldAssignContactToTeamMember",
642 default,
643 skip_serializing_if = "Option::is_none"
644 )]
645 pub should_assign_contact_to_team_member: Option<bool>,
646 #[serde(
647 rename = "shouldSkipAssigningContactForExisting",
648 default,
649 skip_serializing_if = "Option::is_none"
650 )]
651 pub should_skip_assigning_contact_for_existing: Option<bool>,
652 #[serde(default, skip_serializing_if = "Option::is_none")]
653 pub notes: Option<String>,
654 #[serde(rename = "pixelId", default, skip_serializing_if = "Option::is_none")]
655 pub pixel_id: Option<String>,
656 #[serde(
658 rename = "formSubmitType",
659 default,
660 skip_serializing_if = "Option::is_none"
661 )]
662 pub form_submit_type: Option<String>,
663 #[serde(
664 rename = "formSubmitRedirectURL",
665 default,
666 skip_serializing_if = "Option::is_none"
667 )]
668 pub form_submit_redirect_url: Option<String>,
669 #[serde(
670 rename = "formSubmitThanksMessage",
671 default,
672 skip_serializing_if = "Option::is_none"
673 )]
674 pub form_submit_thanks_message: Option<String>,
675 #[serde(
679 rename = "availabilityType",
680 default,
681 skip_serializing_if = "Option::is_none"
682 )]
683 pub availability_type: Option<String>,
684 #[serde(default, skip_serializing_if = "Vec::is_empty")]
687 pub availabilities: Vec<Availability>,
688 #[serde(rename = "guestType", default, skip_serializing_if = "Option::is_none")]
690 pub guest_type: Option<String>,
691 #[serde(
692 rename = "consentLabel",
693 default,
694 skip_serializing_if = "Option::is_none"
695 )]
696 pub consent_label: Option<String>,
697 #[serde(
698 rename = "calendarCoverImage",
699 default,
700 skip_serializing_if = "Option::is_none"
701 )]
702 pub calendar_cover_image: Option<String>,
703 #[serde(
705 rename = "lookBusyConfig",
706 default,
707 skip_serializing_if = "Option::is_none"
708 )]
709 pub look_busy_config: Option<LookBusyConfiguration>,
710}
711
712#[derive(Debug, Clone, Default, Serialize, Deserialize)]
714pub struct CalendarDTO {
715 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
717 pub is_active: Option<bool>,
718 #[serde(default, skip_serializing_if = "Vec::is_empty")]
720 pub notifications: Vec<CalendarNotification>,
721 #[serde(rename = "locationId")]
723 pub location_id: String,
724 #[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
726 pub group_id: Option<String>,
727 #[serde(rename = "teamMembers", default, skip_serializing_if = "Vec::is_empty")]
730 pub team_members: Vec<TeamMemberResponse>,
731 #[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
734 pub event_type: Option<String>,
735 pub name: String,
737 #[serde(default, skip_serializing_if = "Option::is_none")]
738 pub description: Option<String>,
739 #[serde(default, skip_serializing_if = "Option::is_none")]
740 pub slug: Option<String>,
741 #[serde(
742 rename = "widgetSlug",
743 default,
744 skip_serializing_if = "Option::is_none"
745 )]
746 pub widget_slug: Option<String>,
747 #[serde(
750 rename = "calendarType",
751 default,
752 skip_serializing_if = "Option::is_none"
753 )]
754 pub calendar_type: Option<String>,
755 #[serde(
758 rename = "widgetType",
759 default,
760 skip_serializing_if = "Option::is_none"
761 )]
762 pub widget_type: Option<String>,
763 #[serde(
764 rename = "eventTitle",
765 default,
766 skip_serializing_if = "Option::is_none"
767 )]
768 pub event_title: Option<String>,
769 #[serde(
770 rename = "eventColor",
771 default,
772 skip_serializing_if = "Option::is_none"
773 )]
774 pub event_color: Option<String>,
775 #[serde(
778 rename = "meetingLocation",
779 default,
780 skip_serializing_if = "Option::is_none"
781 )]
782 pub meeting_location: Option<String>,
783 #[serde(
785 rename = "locationConfigurations",
786 default,
787 skip_serializing_if = "Vec::is_empty"
788 )]
789 pub location_configurations: Vec<LocationConfigurationResponse>,
790 #[serde(
792 rename = "slotDuration",
793 default,
794 skip_serializing_if = "Option::is_none"
795 )]
796 pub slot_duration: Option<f64>,
797 #[serde(
800 rename = "slotDurationUnit",
801 default,
802 skip_serializing_if = "Option::is_none"
803 )]
804 pub slot_duration_unit: Option<String>,
805 #[serde(
808 rename = "slotInterval",
809 default,
810 skip_serializing_if = "Option::is_none"
811 )]
812 pub slot_interval: Option<f64>,
813 #[serde(
816 rename = "slotIntervalUnit",
817 default,
818 skip_serializing_if = "Option::is_none"
819 )]
820 pub slot_interval_unit: Option<String>,
821 #[serde(
824 rename = "slotBuffer",
825 default,
826 skip_serializing_if = "Option::is_none"
827 )]
828 pub slot_buffer: Option<f64>,
829 #[serde(
832 rename = "slotBufferUnit",
833 default,
834 skip_serializing_if = "Option::is_none"
835 )]
836 pub slot_buffer_unit: Option<String>,
837 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
840 pub pre_buffer: Option<f64>,
841 #[serde(
844 rename = "preBufferUnit",
845 default,
846 skip_serializing_if = "Option::is_none"
847 )]
848 pub pre_buffer_unit: Option<String>,
849 #[serde(
852 rename = "appoinmentPerSlot",
853 default,
854 skip_serializing_if = "Option::is_none"
855 )]
856 pub appoinment_per_slot: Option<f64>,
857 #[serde(
859 rename = "appoinmentPerDay",
860 default,
861 skip_serializing_if = "Option::is_none"
862 )]
863 pub appoinment_per_day: Option<f64>,
864 #[serde(
866 rename = "allowBookingAfter",
867 default,
868 skip_serializing_if = "Option::is_none"
869 )]
870 pub allow_booking_after: Option<f64>,
871 #[serde(
874 rename = "allowBookingAfterUnit",
875 default,
876 skip_serializing_if = "Option::is_none"
877 )]
878 pub allow_booking_after_unit: Option<String>,
879 #[serde(
881 rename = "allowBookingFor",
882 default,
883 skip_serializing_if = "Option::is_none"
884 )]
885 pub allow_booking_for: Option<f64>,
886 #[serde(
889 rename = "allowBookingForUnit",
890 default,
891 skip_serializing_if = "Option::is_none"
892 )]
893 pub allow_booking_for_unit: Option<String>,
894 #[serde(rename = "openHours", default, skip_serializing_if = "Vec::is_empty")]
897 pub open_hours: Vec<OpenHour>,
898 #[serde(
901 rename = "enableRecurring",
902 default,
903 skip_serializing_if = "Option::is_none"
904 )]
905 pub enable_recurring: Option<bool>,
906 #[serde(default, skip_serializing_if = "Option::is_none")]
907 pub recurring: Option<Recurring>,
908 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
909 pub form_id: Option<String>,
910 #[serde(
911 rename = "stickyContact",
912 default,
913 skip_serializing_if = "Option::is_none"
914 )]
915 pub sticky_contact: Option<bool>,
916 #[serde(
917 rename = "isLivePaymentMode",
918 default,
919 skip_serializing_if = "Option::is_none"
920 )]
921 pub is_live_payment_mode: Option<bool>,
922 #[serde(
923 rename = "autoConfirm",
924 default,
925 skip_serializing_if = "Option::is_none"
926 )]
927 pub auto_confirm: Option<bool>,
928 #[serde(
929 rename = "shouldSendAlertEmailsToAssignedMember",
930 default,
931 skip_serializing_if = "Option::is_none"
932 )]
933 pub should_send_alert_emails_to_assigned_member: Option<bool>,
934 #[serde(
935 rename = "alertEmail",
936 default,
937 skip_serializing_if = "Option::is_none"
938 )]
939 pub alert_email: Option<String>,
940 #[serde(
941 rename = "googleInvitationEmails",
942 default,
943 skip_serializing_if = "Option::is_none"
944 )]
945 pub google_invitation_emails: Option<bool>,
946 #[serde(
947 rename = "allowReschedule",
948 default,
949 skip_serializing_if = "Option::is_none"
950 )]
951 pub allow_reschedule: Option<bool>,
952 #[serde(
953 rename = "allowCancellation",
954 default,
955 skip_serializing_if = "Option::is_none"
956 )]
957 pub allow_cancellation: Option<bool>,
958 #[serde(
959 rename = "shouldAssignContactToTeamMember",
960 default,
961 skip_serializing_if = "Option::is_none"
962 )]
963 pub should_assign_contact_to_team_member: Option<bool>,
964 #[serde(
965 rename = "shouldSkipAssigningContactForExisting",
966 default,
967 skip_serializing_if = "Option::is_none"
968 )]
969 pub should_skip_assigning_contact_for_existing: Option<bool>,
970 #[serde(default, skip_serializing_if = "Option::is_none")]
971 pub notes: Option<String>,
972 #[serde(rename = "pixelId", default, skip_serializing_if = "Option::is_none")]
973 pub pixel_id: Option<String>,
974 #[serde(
976 rename = "formSubmitType",
977 default,
978 skip_serializing_if = "Option::is_none"
979 )]
980 pub form_submit_type: Option<String>,
981 #[serde(
982 rename = "formSubmitRedirectURL",
983 default,
984 skip_serializing_if = "Option::is_none"
985 )]
986 pub form_submit_redirect_url: Option<String>,
987 #[serde(
988 rename = "formSubmitThanksMessage",
989 default,
990 skip_serializing_if = "Option::is_none"
991 )]
992 pub form_submit_thanks_message: Option<String>,
993 #[serde(
997 rename = "availabilityType",
998 default,
999 skip_serializing_if = "Option::is_none"
1000 )]
1001 pub availability_type: Option<String>,
1002 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1005 pub availabilities: Vec<Availability>,
1006 #[serde(rename = "guestType", default, skip_serializing_if = "Option::is_none")]
1008 pub guest_type: Option<String>,
1009 #[serde(
1010 rename = "consentLabel",
1011 default,
1012 skip_serializing_if = "Option::is_none"
1013 )]
1014 pub consent_label: Option<String>,
1015 #[serde(
1016 rename = "calendarCoverImage",
1017 default,
1018 skip_serializing_if = "Option::is_none"
1019 )]
1020 pub calendar_cover_image: Option<String>,
1021 #[serde(
1023 rename = "lookBusyConfig",
1024 default,
1025 skip_serializing_if = "Option::is_none"
1026 )]
1027 pub look_busy_config: Option<LookBusyConfiguration>,
1028 pub id: String,
1030}
1031
1032#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1034pub struct CalendarDeleteSuccessfulResponseDTO {
1035 pub success: bool,
1038}
1039
1040#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1042pub struct CalendarEventDTO {
1043 pub id: String,
1046 #[serde(default, skip_serializing_if = "Option::is_none")]
1048 pub address: Option<String>,
1049 pub title: String,
1052 #[serde(rename = "calendarId")]
1055 pub calendar_id: String,
1056 #[serde(rename = "locationId")]
1059 pub location_id: String,
1060 #[serde(rename = "contactId")]
1063 pub contact_id: String,
1064 #[serde(rename = "groupId")]
1067 pub group_id: String,
1068 #[serde(rename = "appointmentStatus")]
1071 pub appointment_status: String,
1072 #[serde(rename = "assignedUserId")]
1075 pub assigned_user_id: String,
1076 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1079 pub users: Vec<String>,
1080 #[serde(default, skip_serializing_if = "Option::is_none")]
1082 pub notes: Option<String>,
1083 #[serde(default, skip_serializing_if = "Option::is_none")]
1085 pub description: Option<String>,
1086 #[serde(
1088 rename = "isRecurring",
1089 default,
1090 skip_serializing_if = "Option::is_none"
1091 )]
1092 pub is_recurring: Option<bool>,
1093 #[serde(default, skip_serializing_if = "Option::is_none")]
1096 pub rrule: Option<String>,
1097 #[serde(default, skip_serializing_if = "Option::is_none")]
1099 pub deleted: Option<bool>,
1100 #[serde(rename = "startTime")]
1103 pub start_time: serde_json::Value,
1104 #[serde(rename = "endTime")]
1107 pub end_time: serde_json::Value,
1108 #[serde(rename = "dateAdded")]
1111 pub date_added: serde_json::Value,
1112 #[serde(rename = "dateUpdated")]
1115 pub date_updated: serde_json::Value,
1116 #[serde(
1118 rename = "assignedResources",
1119 default,
1120 skip_serializing_if = "Vec::is_empty"
1121 )]
1122 pub assigned_resources: Vec<String>,
1123 #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
1125 pub created_by: Option<CreatedOrUpdatedBy>,
1126 #[serde(
1128 rename = "masterEventId",
1129 default,
1130 skip_serializing_if = "Option::is_none"
1131 )]
1132 pub master_event_id: Option<String>,
1133}
1134
1135#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1137pub struct CalendarNotification {
1138 #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
1141 pub type_: Option<String>,
1142 #[serde(rename = "shouldSendToContact")]
1144 pub should_send_to_contact: bool,
1145 #[serde(rename = "shouldSendToGuest")]
1147 pub should_send_to_guest: bool,
1148 #[serde(rename = "shouldSendToUser")]
1150 pub should_send_to_user: bool,
1151 #[serde(rename = "shouldSendToSelectedUsers")]
1153 pub should_send_to_selected_users: bool,
1154 #[serde(rename = "selectedUsers")]
1157 pub selected_users: String,
1158}
1159
1160#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1162pub struct CalendarNotificationDeleteResponseDTO {
1163 pub message: String,
1166}
1167
1168#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1170pub struct CalendarNotificationResponseDTO {
1171 #[serde(rename = "_id", default, skip_serializing_if = "Option::is_none")]
1173 pub id: Option<String>,
1174 #[serde(
1177 rename = "receiverType",
1178 default,
1179 skip_serializing_if = "Option::is_none"
1180 )]
1181 pub receiver_type: Option<String>,
1182 #[serde(
1183 rename = "additionalEmailIds",
1184 default,
1185 skip_serializing_if = "Vec::is_empty"
1186 )]
1187 pub additional_email_ids: Vec<String>,
1188 #[serde(
1189 rename = "additionalPhoneNumbers",
1190 default,
1191 skip_serializing_if = "Vec::is_empty"
1192 )]
1193 pub additional_phone_numbers: Vec<String>,
1194 #[serde(default, skip_serializing_if = "Option::is_none")]
1196 pub channel: Option<String>,
1197 #[serde(
1200 rename = "notificationType",
1201 default,
1202 skip_serializing_if = "Option::is_none"
1203 )]
1204 pub notification_type: Option<String>,
1205 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
1206 pub is_active: Option<bool>,
1207 #[serde(
1208 rename = "additionalWhatsappNumbers",
1209 default,
1210 skip_serializing_if = "Vec::is_empty"
1211 )]
1212 pub additional_whatsapp_numbers: Vec<String>,
1213 #[serde(
1214 rename = "templateId",
1215 default,
1216 skip_serializing_if = "Option::is_none"
1217 )]
1218 pub template_id: Option<String>,
1219 #[serde(default, skip_serializing_if = "Option::is_none")]
1220 pub body: Option<String>,
1221 #[serde(default, skip_serializing_if = "Option::is_none")]
1222 pub subject: Option<String>,
1223 #[serde(rename = "afterTime", default, skip_serializing_if = "Vec::is_empty")]
1224 pub after_time: Vec<SchedulesDTO>,
1225 #[serde(rename = "beforeTime", default, skip_serializing_if = "Vec::is_empty")]
1226 pub before_time: Vec<SchedulesDTO>,
1227 #[serde(
1228 rename = "selectedUsers",
1229 default,
1230 skip_serializing_if = "Vec::is_empty"
1231 )]
1232 pub selected_users: Vec<String>,
1233 #[serde(default, skip_serializing_if = "Option::is_none")]
1234 pub deleted: Option<bool>,
1235}
1236
1237#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1239pub struct CalendarResourceByIdResponseDTO {
1240 #[serde(rename = "locationId")]
1243 pub location_id: String,
1244 pub name: String,
1247 #[serde(rename = "resourceType")]
1250 pub resource_type: String,
1251 #[serde(rename = "isActive")]
1254 pub is_active: bool,
1255 #[serde(default, skip_serializing_if = "Option::is_none")]
1257 pub description: Option<String>,
1258 #[serde(default, skip_serializing_if = "Option::is_none")]
1260 pub quantity: Option<f64>,
1261 #[serde(
1263 rename = "outOfService",
1264 default,
1265 skip_serializing_if = "Option::is_none"
1266 )]
1267 pub out_of_service: Option<f64>,
1268 #[serde(default, skip_serializing_if = "Option::is_none")]
1270 pub capacity: Option<f64>,
1271 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
1274 pub calendar_ids: Vec<String>,
1275}
1276
1277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1279pub struct CalendarResourceResponseDTO {
1280 #[serde(rename = "locationId")]
1283 pub location_id: String,
1284 pub name: String,
1287 #[serde(rename = "resourceType")]
1290 pub resource_type: String,
1291 #[serde(rename = "isActive")]
1294 pub is_active: bool,
1295 #[serde(default, skip_serializing_if = "Option::is_none")]
1297 pub description: Option<String>,
1298 #[serde(default, skip_serializing_if = "Option::is_none")]
1300 pub quantity: Option<f64>,
1301 #[serde(
1303 rename = "outOfService",
1304 default,
1305 skip_serializing_if = "Option::is_none"
1306 )]
1307 pub out_of_service: Option<f64>,
1308 #[serde(default, skip_serializing_if = "Option::is_none")]
1310 pub capacity: Option<f64>,
1311}
1312
1313#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1315pub struct CalendarUpdateDTO {
1316 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1318 pub notifications: Vec<CalendarNotification>,
1319 #[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
1321 pub group_id: Option<String>,
1322 #[serde(rename = "teamMembers", default, skip_serializing_if = "Vec::is_empty")]
1325 pub team_members: Vec<TeamMember>,
1326 #[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
1329 pub event_type: Option<String>,
1330 #[serde(default, skip_serializing_if = "Option::is_none")]
1331 pub name: Option<String>,
1332 #[serde(default, skip_serializing_if = "Option::is_none")]
1333 pub description: Option<String>,
1334 #[serde(default, skip_serializing_if = "Option::is_none")]
1335 pub slug: Option<String>,
1336 #[serde(
1337 rename = "widgetSlug",
1338 default,
1339 skip_serializing_if = "Option::is_none"
1340 )]
1341 pub widget_slug: Option<String>,
1342 #[serde(
1345 rename = "widgetType",
1346 default,
1347 skip_serializing_if = "Option::is_none"
1348 )]
1349 pub widget_type: Option<String>,
1350 #[serde(
1351 rename = "eventTitle",
1352 default,
1353 skip_serializing_if = "Option::is_none"
1354 )]
1355 pub event_title: Option<String>,
1356 #[serde(
1357 rename = "eventColor",
1358 default,
1359 skip_serializing_if = "Option::is_none"
1360 )]
1361 pub event_color: Option<String>,
1362 #[serde(
1364 rename = "locationConfigurations",
1365 default,
1366 skip_serializing_if = "Vec::is_empty"
1367 )]
1368 pub location_configurations: Vec<LocationConfiguration>,
1369 #[serde(
1372 rename = "meetingLocation",
1373 default,
1374 skip_serializing_if = "Option::is_none"
1375 )]
1376 pub meeting_location: Option<String>,
1377 #[serde(
1379 rename = "slotDuration",
1380 default,
1381 skip_serializing_if = "Option::is_none"
1382 )]
1383 pub slot_duration: Option<f64>,
1384 #[serde(
1387 rename = "slotDurationUnit",
1388 default,
1389 skip_serializing_if = "Option::is_none"
1390 )]
1391 pub slot_duration_unit: Option<String>,
1392 #[serde(
1395 rename = "preBufferUnit",
1396 default,
1397 skip_serializing_if = "Option::is_none"
1398 )]
1399 pub pre_buffer_unit: Option<String>,
1400 #[serde(
1403 rename = "slotInterval",
1404 default,
1405 skip_serializing_if = "Option::is_none"
1406 )]
1407 pub slot_interval: Option<f64>,
1408 #[serde(
1411 rename = "slotIntervalUnit",
1412 default,
1413 skip_serializing_if = "Option::is_none"
1414 )]
1415 pub slot_interval_unit: Option<String>,
1416 #[serde(
1419 rename = "slotBuffer",
1420 default,
1421 skip_serializing_if = "Option::is_none"
1422 )]
1423 pub slot_buffer: Option<f64>,
1424 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
1427 pub pre_buffer: Option<f64>,
1428 #[serde(
1429 rename = "appoinmentPerSlot",
1430 default,
1431 skip_serializing_if = "Option::is_none"
1432 )]
1433 pub appoinment_per_slot: Option<f64>,
1434 #[serde(
1436 rename = "appoinmentPerDay",
1437 default,
1438 skip_serializing_if = "Option::is_none"
1439 )]
1440 pub appoinment_per_day: Option<f64>,
1441 #[serde(
1443 rename = "allowBookingAfter",
1444 default,
1445 skip_serializing_if = "Option::is_none"
1446 )]
1447 pub allow_booking_after: Option<f64>,
1448 #[serde(
1451 rename = "allowBookingAfterUnit",
1452 default,
1453 skip_serializing_if = "Option::is_none"
1454 )]
1455 pub allow_booking_after_unit: Option<String>,
1456 #[serde(
1458 rename = "allowBookingFor",
1459 default,
1460 skip_serializing_if = "Option::is_none"
1461 )]
1462 pub allow_booking_for: Option<f64>,
1463 #[serde(
1466 rename = "allowBookingForUnit",
1467 default,
1468 skip_serializing_if = "Option::is_none"
1469 )]
1470 pub allow_booking_for_unit: Option<String>,
1471 #[serde(rename = "openHours", default, skip_serializing_if = "Vec::is_empty")]
1474 pub open_hours: Vec<OpenHour>,
1475 #[serde(
1478 rename = "enableRecurring",
1479 default,
1480 skip_serializing_if = "Option::is_none"
1481 )]
1482 pub enable_recurring: Option<bool>,
1483 #[serde(default, skip_serializing_if = "Option::is_none")]
1484 pub recurring: Option<Recurring>,
1485 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
1486 pub form_id: Option<String>,
1487 #[serde(
1488 rename = "stickyContact",
1489 default,
1490 skip_serializing_if = "Option::is_none"
1491 )]
1492 pub sticky_contact: Option<bool>,
1493 #[serde(
1494 rename = "isLivePaymentMode",
1495 default,
1496 skip_serializing_if = "Option::is_none"
1497 )]
1498 pub is_live_payment_mode: Option<bool>,
1499 #[serde(
1500 rename = "autoConfirm",
1501 default,
1502 skip_serializing_if = "Option::is_none"
1503 )]
1504 pub auto_confirm: Option<bool>,
1505 #[serde(
1506 rename = "shouldSendAlertEmailsToAssignedMember",
1507 default,
1508 skip_serializing_if = "Option::is_none"
1509 )]
1510 pub should_send_alert_emails_to_assigned_member: Option<bool>,
1511 #[serde(
1512 rename = "alertEmail",
1513 default,
1514 skip_serializing_if = "Option::is_none"
1515 )]
1516 pub alert_email: Option<String>,
1517 #[serde(
1518 rename = "googleInvitationEmails",
1519 default,
1520 skip_serializing_if = "Option::is_none"
1521 )]
1522 pub google_invitation_emails: Option<bool>,
1523 #[serde(
1524 rename = "allowReschedule",
1525 default,
1526 skip_serializing_if = "Option::is_none"
1527 )]
1528 pub allow_reschedule: Option<bool>,
1529 #[serde(
1530 rename = "allowCancellation",
1531 default,
1532 skip_serializing_if = "Option::is_none"
1533 )]
1534 pub allow_cancellation: Option<bool>,
1535 #[serde(
1536 rename = "shouldAssignContactToTeamMember",
1537 default,
1538 skip_serializing_if = "Option::is_none"
1539 )]
1540 pub should_assign_contact_to_team_member: Option<bool>,
1541 #[serde(
1542 rename = "shouldSkipAssigningContactForExisting",
1543 default,
1544 skip_serializing_if = "Option::is_none"
1545 )]
1546 pub should_skip_assigning_contact_for_existing: Option<bool>,
1547 #[serde(default, skip_serializing_if = "Option::is_none")]
1548 pub notes: Option<String>,
1549 #[serde(rename = "pixelId", default, skip_serializing_if = "Option::is_none")]
1550 pub pixel_id: Option<String>,
1551 #[serde(
1553 rename = "formSubmitType",
1554 default,
1555 skip_serializing_if = "Option::is_none"
1556 )]
1557 pub form_submit_type: Option<String>,
1558 #[serde(
1559 rename = "formSubmitRedirectURL",
1560 default,
1561 skip_serializing_if = "Option::is_none"
1562 )]
1563 pub form_submit_redirect_url: Option<String>,
1564 #[serde(
1565 rename = "formSubmitThanksMessage",
1566 default,
1567 skip_serializing_if = "Option::is_none"
1568 )]
1569 pub form_submit_thanks_message: Option<String>,
1570 #[serde(
1574 rename = "availabilityType",
1575 default,
1576 skip_serializing_if = "Option::is_none"
1577 )]
1578 pub availability_type: Option<String>,
1579 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1582 pub availabilities: Vec<UpdateAvailability>,
1583 #[serde(rename = "guestType", default, skip_serializing_if = "Option::is_none")]
1585 pub guest_type: Option<String>,
1586 #[serde(
1587 rename = "consentLabel",
1588 default,
1589 skip_serializing_if = "Option::is_none"
1590 )]
1591 pub consent_label: Option<String>,
1592 #[serde(
1593 rename = "calendarCoverImage",
1594 default,
1595 skip_serializing_if = "Option::is_none"
1596 )]
1597 pub calendar_cover_image: Option<String>,
1598 #[serde(
1600 rename = "lookBusyConfig",
1601 default,
1602 skip_serializing_if = "Option::is_none"
1603 )]
1604 pub look_busy_config: Option<LookBusyConfiguration>,
1605 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
1606 pub is_active: Option<bool>,
1607}
1608
1609#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1611pub struct CalendarsGetSuccessfulResponseDTO {
1612 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1613 pub calendars: Vec<CalendarDTO>,
1614}
1615
1616#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1618pub struct CreateBookingServiceDTO {
1619 pub id: String,
1622 #[serde(rename = "staffId", default, skip_serializing_if = "Option::is_none")]
1624 pub staff_id: Option<String>,
1625 #[serde(default, skip_serializing_if = "Option::is_none")]
1627 pub position: Option<f64>,
1628 #[serde(rename = "addOns", default, skip_serializing_if = "Vec::is_empty")]
1630 pub add_ons: Vec<ServiceAddOnDTO>,
1631}
1632
1633#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1635pub struct CreateCalendarNotificationDTO {
1636 #[serde(rename = "receiverType")]
1641 pub receiver_type: String,
1642 pub channel: String,
1646 #[serde(rename = "notificationType")]
1651 pub notification_type: String,
1652 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
1654 pub is_active: Option<bool>,
1655 #[serde(
1657 rename = "templateId",
1658 default,
1659 skip_serializing_if = "Option::is_none"
1660 )]
1661 pub template_id: Option<String>,
1662 #[serde(default, skip_serializing_if = "Option::is_none")]
1664 pub body: Option<String>,
1665 #[serde(default, skip_serializing_if = "Option::is_none")]
1667 pub subject: Option<String>,
1668 #[serde(rename = "afterTime", default, skip_serializing_if = "Vec::is_empty")]
1671 pub after_time: Vec<SchedulesDTO>,
1672 #[serde(rename = "beforeTime", default, skip_serializing_if = "Vec::is_empty")]
1675 pub before_time: Vec<SchedulesDTO>,
1676 #[serde(
1678 rename = "additionalEmailIds",
1679 default,
1680 skip_serializing_if = "Vec::is_empty"
1681 )]
1682 pub additional_email_ids: Vec<String>,
1683 #[serde(
1685 rename = "additionalPhoneNumbers",
1686 default,
1687 skip_serializing_if = "Vec::is_empty"
1688 )]
1689 pub additional_phone_numbers: Vec<String>,
1690 #[serde(
1693 rename = "selectedUsers",
1694 default,
1695 skip_serializing_if = "Vec::is_empty"
1696 )]
1697 pub selected_users: Vec<String>,
1698 #[serde(
1700 rename = "fromAddress",
1701 default,
1702 skip_serializing_if = "Option::is_none"
1703 )]
1704 pub from_address: Option<String>,
1705 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
1707 pub from_name: Option<String>,
1708 #[serde(
1710 rename = "fromNumber",
1711 default,
1712 skip_serializing_if = "Option::is_none"
1713 )]
1714 pub from_number: Option<String>,
1715}
1716
1717#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1719pub struct CreateCalendarResourceDTO {
1720 #[serde(rename = "locationId")]
1722 pub location_id: String,
1723 pub name: String,
1725 pub description: String,
1727 pub quantity: f64,
1730 #[serde(rename = "outOfService")]
1733 pub out_of_service: f64,
1734 pub capacity: f64,
1737 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
1741 pub calendar_ids: Vec<String>,
1742}
1743
1744#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1746pub struct CreateEventCalendarScheduleDTO {
1747 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1750 pub rules: Vec<ScheduleRuleDTO>,
1751 pub timezone: String,
1754}
1755
1756#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1758pub struct CreateOrUpdateServiceBookingResponseDTO {
1759 #[serde(rename = "bookingId")]
1762 pub booking_id: String,
1763 #[serde(rename = "locationId")]
1766 pub location_id: String,
1767 #[serde(rename = "contactId")]
1770 pub contact_id: String,
1771 #[serde(rename = "serviceLocationId")]
1774 pub service_location_id: String,
1775 pub title: String,
1778 #[serde(rename = "startTime")]
1781 pub start_time: String,
1782 #[serde(rename = "endTime")]
1785 pub end_time: String,
1786 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1789 pub services: Vec<ServiceDTO>,
1790 pub timezone: String,
1793 pub status: String,
1796 pub deleted: bool,
1799 #[serde(rename = "dateAdded")]
1802 pub date_added: String,
1803 #[serde(rename = "dateUpdated")]
1806 pub date_updated: String,
1807 #[serde(rename = "createdBy")]
1810 pub created_by: CreatedOrUpdatedBy,
1811 #[serde(
1814 rename = "meetingLocation",
1815 default,
1816 skip_serializing_if = "Option::is_none"
1817 )]
1818 pub meeting_location: Option<String>,
1819 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1822 pub messages: Vec<Vec<serde_json::Value>>,
1823}
1824
1825#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1827pub struct CreatePublicServiceBookingDTO {
1828 #[serde(rename = "locationId")]
1831 pub location_id: String,
1832 #[serde(rename = "contactId")]
1835 pub contact_id: String,
1836 #[serde(rename = "startTime")]
1839 pub start_time: String,
1840 #[serde(rename = "endTime")]
1843 pub end_time: String,
1844 pub timezone: String,
1847 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1850 pub services: Vec<CreateBookingServiceDTO>,
1851 #[serde(
1853 rename = "serviceLocationId",
1854 default,
1855 skip_serializing_if = "Option::is_none"
1856 )]
1857 pub service_location_id: Option<String>,
1858 #[serde(
1861 rename = "meetingLocation",
1862 default,
1863 skip_serializing_if = "Option::is_none"
1864 )]
1865 pub meeting_location: Option<String>,
1866 #[serde(default, skip_serializing_if = "Option::is_none")]
1868 pub title: Option<String>,
1869 #[serde(default, skip_serializing_if = "Option::is_none")]
1873 pub status: Option<String>,
1874}
1875
1876#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1878pub struct CreateScheduleDTO {
1879 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1881 pub rules: Vec<ScheduleRuleDTO>,
1882 pub timezone: String,
1885 #[serde(rename = "locationId")]
1888 pub location_id: String,
1889 pub name: String,
1892 #[serde(rename = "userId")]
1895 pub user_id: String,
1896 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
1898 pub calendar_ids: Vec<String>,
1899}
1900
1901#[derive(Debug, Clone, Default, Serialize, Deserialize)]
1903pub struct CreateServiceDTO {
1904 #[serde(rename = "locationId")]
1907 pub location_id: String,
1908 pub name: String,
1911 pub slug: String,
1914 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1917 pub staff: Vec<StaffDTO>,
1918 #[serde(default, skip_serializing_if = "Option::is_none")]
1920 pub description: Option<String>,
1921 #[serde(
1923 rename = "eventColor",
1924 default,
1925 skip_serializing_if = "Option::is_none"
1926 )]
1927 pub event_color: Option<String>,
1928 #[serde(
1930 rename = "coverImage",
1931 default,
1932 skip_serializing_if = "Option::is_none"
1933 )]
1934 pub cover_image: Option<String>,
1935 #[serde(
1937 rename = "serviceCategoryId",
1938 default,
1939 skip_serializing_if = "Option::is_none"
1940 )]
1941 pub service_category_id: Option<String>,
1942 #[serde(default, skip_serializing_if = "Option::is_none")]
1945 pub payment: Option<PaymentDTO>,
1946 #[serde(
1948 rename = "serviceDuration",
1949 default,
1950 skip_serializing_if = "Option::is_none"
1951 )]
1952 pub service_duration: Option<f64>,
1953 #[serde(
1956 rename = "serviceDurationUnit",
1957 default,
1958 skip_serializing_if = "Option::is_none"
1959 )]
1960 pub service_duration_unit: Option<String>,
1961 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
1964 pub pre_buffer: Option<f64>,
1965 #[serde(
1968 rename = "preBufferUnit",
1969 default,
1970 skip_serializing_if = "Option::is_none"
1971 )]
1972 pub pre_buffer_unit: Option<String>,
1973 #[serde(
1976 rename = "postBuffer",
1977 default,
1978 skip_serializing_if = "Option::is_none"
1979 )]
1980 pub post_buffer: Option<f64>,
1981 #[serde(
1984 rename = "postBufferUnit",
1985 default,
1986 skip_serializing_if = "Option::is_none"
1987 )]
1988 pub post_buffer_unit: Option<String>,
1989 #[serde(rename = "isPrivate", default, skip_serializing_if = "Option::is_none")]
1991 pub is_private: Option<bool>,
1992 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
1995 pub form_id: Option<String>,
1996 #[serde(default, skip_serializing_if = "Vec::is_empty")]
1998 pub variations: Vec<CreateServiceVariationDTO>,
1999}
2000
2001#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2003pub struct CreateServiceLocationDTO {
2004 #[serde(rename = "locationId")]
2007 pub location_id: String,
2008 pub name: String,
2011 pub slug: String,
2014 #[serde(default, skip_serializing_if = "Option::is_none")]
2016 pub phone: Option<String>,
2017 #[serde(default, skip_serializing_if = "Option::is_none")]
2020 pub address: Option<String>,
2021 #[serde(
2023 rename = "coverImage",
2024 default,
2025 skip_serializing_if = "Option::is_none"
2026 )]
2027 pub cover_image: Option<String>,
2028 #[serde(
2031 rename = "locationType",
2032 default,
2033 skip_serializing_if = "Option::is_none"
2034 )]
2035 pub location_type: Option<String>,
2036}
2037
2038#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2040pub struct CreateServiceVariationDTO {
2041 #[serde(
2043 rename = "serviceDuration",
2044 default,
2045 skip_serializing_if = "Option::is_none"
2046 )]
2047 pub service_duration: Option<f64>,
2048 #[serde(
2051 rename = "serviceDurationUnit",
2052 default,
2053 skip_serializing_if = "Option::is_none"
2054 )]
2055 pub service_duration_unit: Option<String>,
2056 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
2059 pub pre_buffer: Option<f64>,
2060 #[serde(
2063 rename = "preBufferUnit",
2064 default,
2065 skip_serializing_if = "Option::is_none"
2066 )]
2067 pub pre_buffer_unit: Option<String>,
2068 #[serde(
2071 rename = "postBuffer",
2072 default,
2073 skip_serializing_if = "Option::is_none"
2074 )]
2075 pub post_buffer: Option<f64>,
2076 #[serde(
2079 rename = "postBufferUnit",
2080 default,
2081 skip_serializing_if = "Option::is_none"
2082 )]
2083 pub post_buffer_unit: Option<String>,
2084 #[serde(default, skip_serializing_if = "Option::is_none")]
2086 pub payment: Option<PaymentDTO>,
2087 pub name: String,
2090}
2091
2092#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2094pub struct CreatedOrUpdatedBy {
2095 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2097 pub user_id: Option<String>,
2098 pub source: String,
2101}
2102
2103#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2105pub struct DeleteAppointmentSchema {
2106 #[serde(flatten)]
2108 pub extra: serde_json::Map<String, serde_json::Value>,
2109}
2110
2111#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2113pub struct DeleteEventSuccessfulResponseDto {
2114 #[serde(default, skip_serializing_if = "Option::is_none")]
2115 pub succeeded: Option<bool>,
2116}
2117
2118#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2120pub struct DeleteNoteSuccessfulResponseDto {
2121 #[serde(default, skip_serializing_if = "Option::is_none")]
2122 pub success: Option<bool>,
2123}
2124
2125#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2127pub struct DeleteServiceBookingResponseDTO {
2128 pub success: bool,
2131 pub message: String,
2134}
2135
2136#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2138pub struct DeleteServiceLocationResponseDTO {
2139 pub success: bool,
2142 #[serde(default, skip_serializing_if = "Option::is_none")]
2144 pub message: Option<String>,
2145}
2146
2147#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2149pub struct DeleteServiceResponseDTO {
2150 pub success: bool,
2153 #[serde(default, skip_serializing_if = "Option::is_none")]
2155 pub message: Option<String>,
2156}
2157
2158#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2160pub struct EventCalendarScheduleResponseDTO {
2161 pub timezone: String,
2164 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2167 pub rules: Vec<ScheduleRuleDTO>,
2168 #[serde(rename = "calendarId")]
2171 pub calendar_id: String,
2172 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
2174 pub date_added: Option<String>,
2175 #[serde(
2177 rename = "dateUpdated",
2178 default,
2179 skip_serializing_if = "Option::is_none"
2180 )]
2181 pub date_updated: Option<String>,
2182}
2183
2184#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2186pub struct EventCalendarScheduleWrapperDTO {
2187 pub schedule: EventCalendarScheduleResponseDTO,
2190}
2191
2192#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2194pub struct GetAllSchedulesResponseDTO {
2195 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2198 pub schedules: Vec<ScheduleObjectResponseDTO>,
2199}
2200
2201#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2203pub struct GetCalendarEventSuccessfulResponseDTO {
2204 #[serde(default, skip_serializing_if = "Option::is_none")]
2205 pub event: Option<CalendarEventDTO>,
2206}
2207
2208#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2210pub struct GetCalendarEventsSuccessfulResponseDTO {
2211 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2212 pub events: Vec<CalendarEventDTO>,
2213}
2214
2215#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2217pub struct GetCreateUpdateNoteSuccessfulResponseDto {
2218 #[serde(default, skip_serializing_if = "Option::is_none")]
2219 pub note: Option<GetNoteSchema>,
2220}
2221
2222#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2224pub struct GetNoteSchema {
2225 #[serde(default, skip_serializing_if = "Option::is_none")]
2226 pub id: Option<String>,
2227 #[serde(default, skip_serializing_if = "Option::is_none")]
2228 pub body: Option<String>,
2229 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2230 pub user_id: Option<String>,
2231 #[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
2232 pub date_added: Option<String>,
2233 #[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
2234 pub contact_id: Option<String>,
2235 #[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
2236 pub created_by: Option<NoteCreatedBySchema>,
2237}
2238
2239#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2241pub struct GetNotesListSuccessfulResponseDto {
2242 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2243 pub notes: Vec<GetNoteSchema>,
2244 #[serde(rename = "hasMore", default, skip_serializing_if = "Option::is_none")]
2245 pub has_more: Option<bool>,
2246}
2247
2248#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2250pub struct GroupCreateDTO {
2251 #[serde(rename = "locationId")]
2253 pub location_id: String,
2254 pub name: String,
2256 pub description: String,
2258 pub slug: String,
2260 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
2261 pub is_active: Option<bool>,
2262}
2263
2264#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2266pub struct GroupCreateSuccessfulResponseDTO {
2267 #[serde(default, skip_serializing_if = "Option::is_none")]
2268 pub group: Option<GroupDTO>,
2269}
2270
2271#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2273pub struct GroupDTO {
2274 #[serde(rename = "locationId")]
2276 pub location_id: String,
2277 pub name: String,
2279 pub description: String,
2281 pub slug: String,
2283 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
2284 pub is_active: Option<bool>,
2285 #[serde(default, skip_serializing_if = "Option::is_none")]
2286 pub id: Option<String>,
2287}
2288
2289#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2291pub struct GroupStatusUpdateParams {
2292 #[serde(rename = "isActive")]
2295 pub is_active: bool,
2296}
2297
2298#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2300pub struct GroupSuccessfulResponseDTO {
2301 #[serde(default, skip_serializing_if = "Option::is_none")]
2303 pub success: Option<bool>,
2304}
2305
2306#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2308pub struct GroupUpdateDTO {
2309 pub name: String,
2311 pub description: String,
2313 pub slug: String,
2315}
2316
2317#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2319pub struct Hour {
2320 #[serde(rename = "openHour")]
2322 pub open_hour: f64,
2323 #[serde(rename = "openMinute")]
2325 pub open_minute: f64,
2326 #[serde(rename = "closeHour")]
2328 pub close_hour: f64,
2329 #[serde(rename = "closeMinute")]
2331 pub close_minute: f64,
2332}
2333
2334#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2336pub struct LocationConfiguration {
2337 pub kind: String,
2343 #[serde(default, skip_serializing_if = "Option::is_none")]
2346 pub location: Option<String>,
2347}
2348
2349#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2351pub struct LocationConfigurationResponse {
2352 pub kind: String,
2358 #[serde(default, skip_serializing_if = "Option::is_none")]
2361 pub location: Option<String>,
2362 #[serde(rename = "meetingId", default, skip_serializing_if = "Option::is_none")]
2364 pub meeting_id: Option<String>,
2365}
2366
2367#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2369pub struct LookBusyConfiguration {
2370 pub enabled: bool,
2373 #[serde(rename = "LookBusyPercentage")]
2376 pub look_busy_percentage: f64,
2377}
2378
2379#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2381pub struct NoteCreatedBySchema {
2382 #[serde(default, skip_serializing_if = "Option::is_none")]
2383 pub id: Option<String>,
2384 #[serde(default, skip_serializing_if = "Option::is_none")]
2385 pub name: Option<String>,
2386}
2387
2388#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2390pub struct NotesDTO {
2391 #[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
2392 pub user_id: Option<String>,
2393 pub body: String,
2396}
2397
2398#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2400pub struct OpenHour {
2401 #[serde(
2403 rename = "daysOfTheWeek",
2404 default,
2405 skip_serializing_if = "Vec::is_empty"
2406 )]
2407 pub days_of_the_week: Vec<f64>,
2408 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2410 pub hours: Vec<Hour>,
2411}
2412
2413#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2415pub struct PaymentDTO {
2416 #[serde(default, skip_serializing_if = "Option::is_none")]
2418 pub amount: Option<f64>,
2419 #[serde(default, skip_serializing_if = "Option::is_none")]
2421 pub deposit: Option<f64>,
2422 #[serde(
2425 rename = "depositType",
2426 default,
2427 skip_serializing_if = "Option::is_none"
2428 )]
2429 pub deposit_type: Option<String>,
2430}
2431
2432#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2434pub struct Recurring {
2435 #[serde(default, skip_serializing_if = "Option::is_none")]
2437 pub freq: Option<String>,
2438 #[serde(default, skip_serializing_if = "Option::is_none")]
2440 pub count: Option<f64>,
2441 #[serde(
2444 rename = "bookingOption",
2445 default,
2446 skip_serializing_if = "Option::is_none"
2447 )]
2448 pub booking_option: Option<String>,
2449 #[serde(
2452 rename = "bookingOverlapDefaultStatus",
2453 default,
2454 skip_serializing_if = "Option::is_none"
2455 )]
2456 pub booking_overlap_default_status: Option<String>,
2457}
2458
2459#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2461pub struct ResourceDeleteResponseDTO {
2462 #[serde(default, skip_serializing_if = "Option::is_none")]
2464 pub success: Option<bool>,
2465}
2466
2467#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2469pub struct ScheduleIntervalDTO {
2470 #[serde(rename = "from")]
2473 pub from_: String,
2474 pub to: String,
2477}
2478
2479#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2481pub struct ScheduleObjectResponseDTO {
2482 pub id: String,
2485 pub name: String,
2488 #[serde(rename = "locationId")]
2491 pub location_id: String,
2492 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2495 pub rules: Vec<ScheduleRuleDTO>,
2496 pub timezone: String,
2499 #[serde(rename = "dateAdded")]
2502 pub date_added: String,
2503 #[serde(rename = "dateUpdated")]
2506 pub date_updated: String,
2507 #[serde(rename = "userId")]
2510 pub user_id: String,
2511 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
2513 pub calendar_ids: Vec<String>,
2514 pub deleted: bool,
2517}
2518
2519#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2521pub struct ScheduleResponseDTO {
2522 pub schedule: ScheduleObjectResponseDTO,
2525}
2526
2527#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2529pub struct ScheduleRuleDTO {
2530 #[serde(rename = "type")]
2534 pub type_: String,
2535 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2538 pub intervals: Vec<ScheduleIntervalDTO>,
2539 #[serde(default, skip_serializing_if = "Option::is_none")]
2541 pub date: Option<String>,
2542 #[serde(default, skip_serializing_if = "Option::is_none")]
2546 pub day: Option<String>,
2547}
2548
2549#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2551pub struct SchedulesDTO {
2552 #[serde(
2553 rename = "timeOffset",
2554 default,
2555 skip_serializing_if = "Option::is_none"
2556 )]
2557 pub time_offset: Option<f64>,
2558 #[serde(default, skip_serializing_if = "Option::is_none")]
2559 pub unit: Option<String>,
2560}
2561
2562#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2564pub struct ServiceAddOnDTO {
2565 pub id: String,
2568 #[serde(default, skip_serializing_if = "Option::is_none")]
2570 pub quantity: Option<f64>,
2571 #[serde(default, skip_serializing_if = "Option::is_none")]
2573 pub duration: Option<f64>,
2574}
2575
2576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2578pub struct ServiceAddOnResponseDTO {
2579 pub id: String,
2582 #[serde(default, skip_serializing_if = "Option::is_none")]
2584 pub quantity: Option<f64>,
2585}
2586
2587#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2589pub struct ServiceBookingQueryDTO {
2590 #[serde(
2593 rename = "overrideAvailability",
2594 default,
2595 skip_serializing_if = "Option::is_none"
2596 )]
2597 pub override_availability: Option<bool>,
2598 #[serde(
2600 rename = "skipSchedulingNotice",
2601 default,
2602 skip_serializing_if = "Option::is_none"
2603 )]
2604 pub skip_scheduling_notice: Option<bool>,
2605}
2606
2607#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2609pub struct ServiceBookingResponseDTO {
2610 #[serde(rename = "bookingId")]
2613 pub booking_id: String,
2614 #[serde(rename = "locationId")]
2617 pub location_id: String,
2618 #[serde(rename = "contactId")]
2621 pub contact_id: String,
2622 #[serde(rename = "serviceLocationId")]
2625 pub service_location_id: String,
2626 pub title: String,
2629 #[serde(rename = "startTime")]
2632 pub start_time: String,
2633 #[serde(rename = "endTime")]
2636 pub end_time: String,
2637 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2640 pub services: Vec<ServiceDTO>,
2641 pub timezone: String,
2644 pub status: String,
2647 pub deleted: bool,
2650 #[serde(rename = "dateAdded")]
2653 pub date_added: String,
2654 #[serde(rename = "dateUpdated")]
2657 pub date_updated: String,
2658 #[serde(rename = "createdBy")]
2661 pub created_by: CreatedOrUpdatedBy,
2662 #[serde(
2665 rename = "meetingLocation",
2666 default,
2667 skip_serializing_if = "Option::is_none"
2668 )]
2669 pub meeting_location: Option<String>,
2670}
2671
2672#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2674pub struct ServiceBookingsListResponseDTO {
2675 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2678 pub bookings: Vec<ServiceBookingResponseDTO>,
2679}
2680
2681#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2683pub struct ServiceDTO {
2684 pub id: String,
2687 #[serde(rename = "serviceCategoryId")]
2690 pub service_category_id: String,
2691 #[serde(rename = "serviceStaffId")]
2694 pub service_staff_id: String,
2695 #[serde(rename = "serviceStartTime")]
2698 pub service_start_time: String,
2699 #[serde(rename = "serviceEndTime")]
2702 pub service_end_time: String,
2703 #[serde(
2705 rename = "serviceResources",
2706 default,
2707 skip_serializing_if = "Vec::is_empty"
2708 )]
2709 pub service_resources: Vec<ServiceResourceDTO>,
2710 #[serde(
2712 rename = "serviceAddOns",
2713 default,
2714 skip_serializing_if = "Vec::is_empty"
2715 )]
2716 pub service_add_ons: Vec<ServiceAddOnResponseDTO>,
2717}
2718
2719#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2721pub struct ServiceLocationListResponseDTO {
2722 #[serde(
2725 rename = "serviceLocations",
2726 default,
2727 skip_serializing_if = "Vec::is_empty"
2728 )]
2729 pub service_locations: Vec<ServiceLocationResponseDTO>,
2730}
2731
2732#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2734pub struct ServiceLocationResponseDTO {
2735 pub id: String,
2738 #[serde(rename = "locationId")]
2741 pub location_id: String,
2742 pub name: String,
2745 pub slug: String,
2748 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
2750 pub is_active: Option<bool>,
2751 #[serde(rename = "isPrivate", default, skip_serializing_if = "Option::is_none")]
2753 pub is_private: Option<bool>,
2754 #[serde(
2756 rename = "coverImage",
2757 default,
2758 skip_serializing_if = "Option::is_none"
2759 )]
2760 pub cover_image: Option<String>,
2761 #[serde(
2764 rename = "locationType",
2765 default,
2766 skip_serializing_if = "Option::is_none"
2767 )]
2768 pub location_type: Option<String>,
2769 #[serde(default, skip_serializing_if = "Option::is_none")]
2772 pub address: Option<String>,
2773 #[serde(default, skip_serializing_if = "Option::is_none")]
2775 pub phone: Option<String>,
2776}
2777
2778#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2780pub struct ServiceResourceDTO {
2781 pub id: String,
2784}
2785
2786#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2788pub struct ServiceResponseDTO {
2789 pub id: String,
2792 #[serde(rename = "locationId")]
2795 pub location_id: String,
2796 pub name: String,
2799 #[serde(default, skip_serializing_if = "Option::is_none")]
2801 pub description: Option<String>,
2802 #[serde(default, skip_serializing_if = "Option::is_none")]
2804 pub slug: Option<String>,
2805 #[serde(
2807 rename = "eventColor",
2808 default,
2809 skip_serializing_if = "Option::is_none"
2810 )]
2811 pub event_color: Option<String>,
2812 #[serde(
2814 rename = "coverImage",
2815 default,
2816 skip_serializing_if = "Option::is_none"
2817 )]
2818 pub cover_image: Option<String>,
2819 #[serde(
2821 rename = "serviceCategoryId",
2822 default,
2823 skip_serializing_if = "Option::is_none"
2824 )]
2825 pub service_category_id: Option<String>,
2826 #[serde(default, skip_serializing_if = "Option::is_none")]
2828 pub payment: Option<PaymentDTO>,
2829 #[serde(
2831 rename = "serviceDuration",
2832 default,
2833 skip_serializing_if = "Option::is_none"
2834 )]
2835 pub service_duration: Option<f64>,
2836 #[serde(
2839 rename = "serviceDurationUnit",
2840 default,
2841 skip_serializing_if = "Option::is_none"
2842 )]
2843 pub service_duration_unit: Option<String>,
2844 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
2847 pub pre_buffer: Option<f64>,
2848 #[serde(
2851 rename = "preBufferUnit",
2852 default,
2853 skip_serializing_if = "Option::is_none"
2854 )]
2855 pub pre_buffer_unit: Option<String>,
2856 #[serde(
2859 rename = "postBuffer",
2860 default,
2861 skip_serializing_if = "Option::is_none"
2862 )]
2863 pub post_buffer: Option<f64>,
2864 #[serde(
2867 rename = "postBufferUnit",
2868 default,
2869 skip_serializing_if = "Option::is_none"
2870 )]
2871 pub post_buffer_unit: Option<String>,
2872 #[serde(rename = "isPrivate", default, skip_serializing_if = "Option::is_none")]
2874 pub is_private: Option<bool>,
2875 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
2878 pub form_id: Option<String>,
2879 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2881 pub variations: Vec<ServiceVariationDTO>,
2882 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2884 pub staff: Vec<StaffDTO>,
2885}
2886
2887#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2889pub struct ServiceResponseWrapperDTO {
2890 pub service: ServiceResponseDTO,
2893}
2894
2895#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2897pub struct ServiceVariationDTO {
2898 pub id: String,
2901 pub name: String,
2904 #[serde(
2906 rename = "serviceDuration",
2907 default,
2908 skip_serializing_if = "Option::is_none"
2909 )]
2910 pub service_duration: Option<f64>,
2911 #[serde(
2914 rename = "serviceDurationUnit",
2915 default,
2916 skip_serializing_if = "Option::is_none"
2917 )]
2918 pub service_duration_unit: Option<String>,
2919 #[serde(default, skip_serializing_if = "Option::is_none")]
2921 pub payment: Option<PaymentDTO>,
2922 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
2925 pub pre_buffer: Option<f64>,
2926 #[serde(
2929 rename = "preBufferUnit",
2930 default,
2931 skip_serializing_if = "Option::is_none"
2932 )]
2933 pub pre_buffer_unit: Option<String>,
2934 #[serde(
2937 rename = "postBuffer",
2938 default,
2939 skip_serializing_if = "Option::is_none"
2940 )]
2941 pub post_buffer: Option<f64>,
2942 #[serde(
2945 rename = "postBufferUnit",
2946 default,
2947 skip_serializing_if = "Option::is_none"
2948 )]
2949 pub post_buffer_unit: Option<String>,
2950}
2951
2952#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2954pub struct ServicesListResponseDTO {
2955 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2958 pub services: Vec<ServiceResponseDTO>,
2959}
2960
2961#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2963pub struct SlotsSchema {
2964 #[serde(default, skip_serializing_if = "Vec::is_empty")]
2966 pub slots: Vec<String>,
2967}
2968
2969#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2971pub struct StaffDTO {
2972 pub id: String,
2975}
2976
2977#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2979pub struct TeamMember {
2980 #[serde(rename = "userId")]
2982 pub user_id: String,
2983 #[serde(default, skip_serializing_if = "Option::is_none")]
2985 pub priority: Option<String>,
2986 #[serde(
2989 rename = "meetingLocationType",
2990 default,
2991 skip_serializing_if = "Option::is_none"
2992 )]
2993 pub meeting_location_type: Option<String>,
2994 #[serde(
2996 rename = "meetingLocation",
2997 default,
2998 skip_serializing_if = "Option::is_none"
2999 )]
3000 pub meeting_location: Option<String>,
3001 #[serde(rename = "isPrimary", default, skip_serializing_if = "Option::is_none")]
3004 pub is_primary: Option<bool>,
3005 #[serde(
3009 rename = "locationConfigurations",
3010 default,
3011 skip_serializing_if = "Vec::is_empty"
3012 )]
3013 pub location_configurations: Vec<LocationConfiguration>,
3014}
3015
3016#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3018pub struct TeamMemberResponse {
3019 #[serde(rename = "userId")]
3021 pub user_id: String,
3022 #[serde(default, skip_serializing_if = "Option::is_none")]
3024 pub priority: Option<String>,
3025 #[serde(
3028 rename = "meetingLocationType",
3029 default,
3030 skip_serializing_if = "Option::is_none"
3031 )]
3032 pub meeting_location_type: Option<String>,
3033 #[serde(
3035 rename = "meetingLocation",
3036 default,
3037 skip_serializing_if = "Option::is_none"
3038 )]
3039 pub meeting_location: Option<String>,
3040 #[serde(rename = "isPrimary", default, skip_serializing_if = "Option::is_none")]
3043 pub is_primary: Option<bool>,
3044 #[serde(
3046 rename = "locationConfigurations",
3047 default,
3048 skip_serializing_if = "Vec::is_empty"
3049 )]
3050 pub location_configurations: Vec<LocationConfigurationResponse>,
3051}
3052
3053#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3055pub struct UpdateAvailability {
3056 pub date: String,
3060 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3062 pub hours: Vec<Hour>,
3063 #[serde(default, skip_serializing_if = "Option::is_none")]
3064 pub deleted: Option<bool>,
3065 #[serde(default, skip_serializing_if = "Option::is_none")]
3068 pub id: Option<String>,
3069}
3070
3071#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3073pub struct UpdateCalendarNotificationsDTO {
3074 #[serde(
3078 rename = "receiverType",
3079 default,
3080 skip_serializing_if = "Option::is_none"
3081 )]
3082 pub receiver_type: Option<String>,
3083 #[serde(
3085 rename = "additionalEmailIds",
3086 default,
3087 skip_serializing_if = "Vec::is_empty"
3088 )]
3089 pub additional_email_ids: Vec<String>,
3090 #[serde(
3092 rename = "additionalPhoneNumbers",
3093 default,
3094 skip_serializing_if = "Vec::is_empty"
3095 )]
3096 pub additional_phone_numbers: Vec<String>,
3097 #[serde(
3100 rename = "selectedUsers",
3101 default,
3102 skip_serializing_if = "Vec::is_empty"
3103 )]
3104 pub selected_users: Vec<String>,
3105 #[serde(default, skip_serializing_if = "Option::is_none")]
3108 pub channel: Option<String>,
3109 #[serde(
3113 rename = "notificationType",
3114 default,
3115 skip_serializing_if = "Option::is_none"
3116 )]
3117 pub notification_type: Option<String>,
3118 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
3120 pub is_active: Option<bool>,
3121 #[serde(default, skip_serializing_if = "Option::is_none")]
3123 pub deleted: Option<bool>,
3124 #[serde(
3126 rename = "templateId",
3127 default,
3128 skip_serializing_if = "Option::is_none"
3129 )]
3130 pub template_id: Option<String>,
3131 #[serde(default, skip_serializing_if = "Option::is_none")]
3133 pub body: Option<String>,
3134 #[serde(default, skip_serializing_if = "Option::is_none")]
3136 pub subject: Option<String>,
3137 #[serde(rename = "afterTime", default, skip_serializing_if = "Vec::is_empty")]
3140 pub after_time: Vec<SchedulesDTO>,
3141 #[serde(rename = "beforeTime", default, skip_serializing_if = "Vec::is_empty")]
3144 pub before_time: Vec<SchedulesDTO>,
3145 #[serde(
3147 rename = "fromAddress",
3148 default,
3149 skip_serializing_if = "Option::is_none"
3150 )]
3151 pub from_address: Option<String>,
3152 #[serde(
3154 rename = "fromNumber",
3155 default,
3156 skip_serializing_if = "Option::is_none"
3157 )]
3158 pub from_number: Option<String>,
3159 #[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
3161 pub from_name: Option<String>,
3162}
3163
3164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3166pub struct UpdateCalendarResourceDTO {
3167 #[serde(
3168 rename = "locationId",
3169 default,
3170 skip_serializing_if = "Option::is_none"
3171 )]
3172 pub location_id: Option<String>,
3173 #[serde(default, skip_serializing_if = "Option::is_none")]
3174 pub name: Option<String>,
3175 #[serde(default, skip_serializing_if = "Option::is_none")]
3176 pub description: Option<String>,
3177 #[serde(default, skip_serializing_if = "Option::is_none")]
3179 pub quantity: Option<f64>,
3180 #[serde(
3182 rename = "outOfService",
3183 default,
3184 skip_serializing_if = "Option::is_none"
3185 )]
3186 pub out_of_service: Option<f64>,
3187 #[serde(default, skip_serializing_if = "Option::is_none")]
3189 pub capacity: Option<f64>,
3190 #[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
3193 pub calendar_ids: Vec<String>,
3194 #[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
3195 pub is_active: Option<bool>,
3196}
3197
3198#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3200pub struct UpdateEventCalendarScheduleDTO {
3201 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3203 pub rules: Vec<ScheduleRuleDTO>,
3204 #[serde(default, skip_serializing_if = "Option::is_none")]
3206 pub timezone: Option<String>,
3207}
3208
3209#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3211pub struct UpdateScheduleDTO {
3212 #[serde(default, skip_serializing_if = "Option::is_none")]
3214 pub name: Option<String>,
3215 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3217 pub rules: Vec<ScheduleRuleDTO>,
3218 #[serde(default, skip_serializing_if = "Option::is_none")]
3220 pub timezone: Option<String>,
3221}
3222
3223#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3225pub struct UpdateServiceBookingDTO {
3226 #[serde(
3228 rename = "serviceLocationId",
3229 default,
3230 skip_serializing_if = "Option::is_none"
3231 )]
3232 pub service_location_id: Option<String>,
3233 #[serde(
3236 rename = "meetingLocation",
3237 default,
3238 skip_serializing_if = "Option::is_none"
3239 )]
3240 pub meeting_location: Option<String>,
3241 #[serde(default, skip_serializing_if = "Option::is_none")]
3243 pub title: Option<String>,
3244 #[serde(default, skip_serializing_if = "Option::is_none")]
3247 pub status: Option<String>,
3248 #[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
3250 pub start_time: Option<String>,
3251 #[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
3253 pub end_time: Option<String>,
3254 #[serde(default, skip_serializing_if = "Option::is_none")]
3256 pub timezone: Option<String>,
3257 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3260 pub services: Vec<CreateBookingServiceDTO>,
3261}
3262
3263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3265pub struct UpdateServiceDTO {
3266 #[serde(default, skip_serializing_if = "Option::is_none")]
3268 pub name: Option<String>,
3269 #[serde(default, skip_serializing_if = "Option::is_none")]
3271 pub description: Option<String>,
3272 #[serde(default, skip_serializing_if = "Option::is_none")]
3274 pub slug: Option<String>,
3275 #[serde(
3277 rename = "eventColor",
3278 default,
3279 skip_serializing_if = "Option::is_none"
3280 )]
3281 pub event_color: Option<String>,
3282 #[serde(
3284 rename = "coverImage",
3285 default,
3286 skip_serializing_if = "Option::is_none"
3287 )]
3288 pub cover_image: Option<String>,
3289 #[serde(
3291 rename = "serviceCategoryId",
3292 default,
3293 skip_serializing_if = "Option::is_none"
3294 )]
3295 pub service_category_id: Option<String>,
3296 #[serde(default, skip_serializing_if = "Option::is_none")]
3298 pub payment: Option<PaymentDTO>,
3299 #[serde(
3301 rename = "serviceDuration",
3302 default,
3303 skip_serializing_if = "Option::is_none"
3304 )]
3305 pub service_duration: Option<f64>,
3306 #[serde(
3309 rename = "serviceDurationUnit",
3310 default,
3311 skip_serializing_if = "Option::is_none"
3312 )]
3313 pub service_duration_unit: Option<String>,
3314 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
3317 pub pre_buffer: Option<f64>,
3318 #[serde(
3321 rename = "preBufferUnit",
3322 default,
3323 skip_serializing_if = "Option::is_none"
3324 )]
3325 pub pre_buffer_unit: Option<String>,
3326 #[serde(
3329 rename = "postBuffer",
3330 default,
3331 skip_serializing_if = "Option::is_none"
3332 )]
3333 pub post_buffer: Option<f64>,
3334 #[serde(
3337 rename = "postBufferUnit",
3338 default,
3339 skip_serializing_if = "Option::is_none"
3340 )]
3341 pub post_buffer_unit: Option<String>,
3342 #[serde(rename = "isPrivate", default, skip_serializing_if = "Option::is_none")]
3344 pub is_private: Option<bool>,
3345 #[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
3348 pub form_id: Option<String>,
3349 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3351 pub staff: Vec<StaffDTO>,
3352 #[serde(default, skip_serializing_if = "Vec::is_empty")]
3355 pub variations: Vec<UpdateServiceVariationDTO>,
3356}
3357
3358#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3360pub struct UpdateServiceLocationDTO {
3361 #[serde(default, skip_serializing_if = "Option::is_none")]
3363 pub name: Option<String>,
3364 #[serde(default, skip_serializing_if = "Option::is_none")]
3366 pub slug: Option<String>,
3367 #[serde(default, skip_serializing_if = "Option::is_none")]
3369 pub phone: Option<String>,
3370 #[serde(default, skip_serializing_if = "Option::is_none")]
3373 pub address: Option<String>,
3374 #[serde(
3376 rename = "coverImage",
3377 default,
3378 skip_serializing_if = "Option::is_none"
3379 )]
3380 pub cover_image: Option<String>,
3381 #[serde(
3384 rename = "locationType",
3385 default,
3386 skip_serializing_if = "Option::is_none"
3387 )]
3388 pub location_type: Option<String>,
3389}
3390
3391#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3393pub struct UpdateServiceVariationDTO {
3394 #[serde(
3396 rename = "serviceDuration",
3397 default,
3398 skip_serializing_if = "Option::is_none"
3399 )]
3400 pub service_duration: Option<f64>,
3401 #[serde(
3404 rename = "serviceDurationUnit",
3405 default,
3406 skip_serializing_if = "Option::is_none"
3407 )]
3408 pub service_duration_unit: Option<String>,
3409 #[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
3412 pub pre_buffer: Option<f64>,
3413 #[serde(
3416 rename = "preBufferUnit",
3417 default,
3418 skip_serializing_if = "Option::is_none"
3419 )]
3420 pub pre_buffer_unit: Option<String>,
3421 #[serde(
3424 rename = "postBuffer",
3425 default,
3426 skip_serializing_if = "Option::is_none"
3427 )]
3428 pub post_buffer: Option<f64>,
3429 #[serde(
3432 rename = "postBufferUnit",
3433 default,
3434 skip_serializing_if = "Option::is_none"
3435 )]
3436 pub post_buffer_unit: Option<String>,
3437 #[serde(default, skip_serializing_if = "Option::is_none")]
3439 pub payment: Option<PaymentDTO>,
3440 #[serde(default, skip_serializing_if = "Option::is_none")]
3442 pub id: Option<String>,
3443 #[serde(default, skip_serializing_if = "Option::is_none")]
3445 pub name: Option<String>,
3446}
3447
3448#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3450pub struct ValidateGroupSlugPostBody {
3451 #[serde(rename = "locationId")]
3454 pub location_id: String,
3455 pub slug: String,
3458}
3459
3460#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3462pub struct ValidateGroupSlugSuccessResponseDTO {
3463 pub available: bool,
3465}