#![allow(
missing_docs,
clippy::doc_lazy_continuation,
clippy::doc_overindented_list_items
)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AllGroupsSuccessfulResponseDTO {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub groups: Vec<GroupDTO>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AppointmentCreateSchema {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(
rename = "meetingLocationType",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location_type: Option<String>,
#[serde(
rename = "meetingLocationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location_id: Option<String>,
#[serde(
rename = "overrideLocationConfig",
default,
skip_serializing_if = "Option::is_none"
)]
pub override_location_config: Option<bool>,
#[serde(
rename = "appointmentStatus",
default,
skip_serializing_if = "Option::is_none"
)]
pub appointment_status: Option<String>,
#[serde(
rename = "assignedUserId",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_user_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(
rename = "ignoreDateRange",
default,
skip_serializing_if = "Option::is_none"
)]
pub ignore_date_range: Option<bool>,
#[serde(rename = "toNotify", default, skip_serializing_if = "Option::is_none")]
pub to_notify: Option<bool>,
#[serde(
rename = "ignoreFreeSlotValidation",
default,
skip_serializing_if = "Option::is_none"
)]
pub ignore_free_slot_validation: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rrule: Option<String>,
#[serde(rename = "calendarId")]
pub calendar_id: String,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "contactId")]
pub contact_id: String,
#[serde(rename = "startTime")]
pub start_time: String,
#[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AppointmentEditSchema {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(
rename = "meetingLocationType",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location_type: Option<String>,
#[serde(
rename = "meetingLocationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location_id: Option<String>,
#[serde(
rename = "overrideLocationConfig",
default,
skip_serializing_if = "Option::is_none"
)]
pub override_location_config: Option<bool>,
#[serde(
rename = "appointmentStatus",
default,
skip_serializing_if = "Option::is_none"
)]
pub appointment_status: Option<String>,
#[serde(
rename = "assignedUserId",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_user_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(
rename = "ignoreDateRange",
default,
skip_serializing_if = "Option::is_none"
)]
pub ignore_date_range: Option<bool>,
#[serde(rename = "toNotify", default, skip_serializing_if = "Option::is_none")]
pub to_notify: Option<bool>,
#[serde(
rename = "ignoreFreeSlotValidation",
default,
skip_serializing_if = "Option::is_none"
)]
pub ignore_free_slot_validation: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rrule: Option<String>,
#[serde(
rename = "calendarId",
default,
skip_serializing_if = "Option::is_none"
)]
pub calendar_id: Option<String>,
#[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AppointmentSchemaResponse {
#[serde(rename = "calendarId")]
pub calendar_id: String,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "contactId")]
pub contact_id: String,
#[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(
rename = "meetingLocationType",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location_type: Option<String>,
#[serde(
rename = "appointmentStatus",
default,
skip_serializing_if = "Option::is_none"
)]
pub appointment_status: Option<String>,
#[serde(
rename = "assignedUserId",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_user_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(
rename = "isRecurring",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_recurring: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rrule: Option<String>,
pub id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct Availability {
pub date: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub hours: Vec<Hour>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BlockSlotCreateRequestDTO {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(rename = "calendarId")]
pub calendar_id: String,
#[serde(
rename = "assignedUserId",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_user_id: Option<String>,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BlockSlotEditRequestDTO {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(rename = "calendarId")]
pub calendar_id: String,
#[serde(
rename = "assignedUserId",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_user_id: Option<String>,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "startTime", default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(rename = "endTime", default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct BlockedSlotSuccessfulResponseDto {
pub id: String,
#[serde(rename = "locationId")]
pub location_id: String,
pub title: String,
#[serde(rename = "startTime")]
pub start_time: serde_json::Value,
#[serde(rename = "endTime")]
pub end_time: serde_json::Value,
#[serde(
rename = "calendarId",
default,
skip_serializing_if = "Option::is_none"
)]
pub calendar_id: Option<String>,
#[serde(
rename = "assignedUserId",
default,
skip_serializing_if = "Option::is_none"
)]
pub assigned_user_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarByIdSuccessfulResponseDTO {
pub calendar: CalendarDTO,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarCreateDTO {
#[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub notifications: Vec<CalendarNotification>,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
pub group_id: Option<String>,
#[serde(rename = "teamMembers", default, skip_serializing_if = "Vec::is_empty")]
pub team_members: Vec<TeamMember>,
#[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
pub event_type: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
#[serde(
rename = "widgetSlug",
default,
skip_serializing_if = "Option::is_none"
)]
pub widget_slug: Option<String>,
#[serde(
rename = "calendarType",
default,
skip_serializing_if = "Option::is_none"
)]
pub calendar_type: Option<String>,
#[serde(
rename = "widgetType",
default,
skip_serializing_if = "Option::is_none"
)]
pub widget_type: Option<String>,
#[serde(
rename = "eventTitle",
default,
skip_serializing_if = "Option::is_none"
)]
pub event_title: Option<String>,
#[serde(
rename = "eventColor",
default,
skip_serializing_if = "Option::is_none"
)]
pub event_color: Option<String>,
#[serde(
rename = "meetingLocation",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location: Option<String>,
#[serde(
rename = "locationConfigurations",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub location_configurations: Vec<LocationConfiguration>,
#[serde(
rename = "slotDuration",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_duration: Option<f64>,
#[serde(
rename = "slotDurationUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_duration_unit: Option<String>,
#[serde(
rename = "slotInterval",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_interval: Option<f64>,
#[serde(
rename = "slotIntervalUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_interval_unit: Option<String>,
#[serde(
rename = "slotBuffer",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_buffer: Option<f64>,
#[serde(
rename = "slotBufferUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_buffer_unit: Option<String>,
#[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
pub pre_buffer: Option<f64>,
#[serde(
rename = "preBufferUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub pre_buffer_unit: Option<String>,
#[serde(
rename = "appoinmentPerSlot",
default,
skip_serializing_if = "Option::is_none"
)]
pub appoinment_per_slot: Option<f64>,
#[serde(
rename = "appoinmentPerDay",
default,
skip_serializing_if = "Option::is_none"
)]
pub appoinment_per_day: Option<f64>,
#[serde(
rename = "allowBookingAfter",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_after: Option<f64>,
#[serde(
rename = "allowBookingAfterUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_after_unit: Option<String>,
#[serde(
rename = "allowBookingFor",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_for: Option<f64>,
#[serde(
rename = "allowBookingForUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_for_unit: Option<String>,
#[serde(rename = "openHours", default, skip_serializing_if = "Vec::is_empty")]
pub open_hours: Vec<OpenHour>,
#[serde(
rename = "enableRecurring",
default,
skip_serializing_if = "Option::is_none"
)]
pub enable_recurring: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub recurring: Option<Recurring>,
#[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
pub form_id: Option<String>,
#[serde(
rename = "stickyContact",
default,
skip_serializing_if = "Option::is_none"
)]
pub sticky_contact: Option<bool>,
#[serde(
rename = "isLivePaymentMode",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_live_payment_mode: Option<bool>,
#[serde(
rename = "autoConfirm",
default,
skip_serializing_if = "Option::is_none"
)]
pub auto_confirm: Option<bool>,
#[serde(
rename = "shouldSendAlertEmailsToAssignedMember",
default,
skip_serializing_if = "Option::is_none"
)]
pub should_send_alert_emails_to_assigned_member: Option<bool>,
#[serde(
rename = "alertEmail",
default,
skip_serializing_if = "Option::is_none"
)]
pub alert_email: Option<String>,
#[serde(
rename = "googleInvitationEmails",
default,
skip_serializing_if = "Option::is_none"
)]
pub google_invitation_emails: Option<bool>,
#[serde(
rename = "allowReschedule",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_reschedule: Option<bool>,
#[serde(
rename = "allowCancellation",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_cancellation: Option<bool>,
#[serde(
rename = "shouldAssignContactToTeamMember",
default,
skip_serializing_if = "Option::is_none"
)]
pub should_assign_contact_to_team_member: Option<bool>,
#[serde(
rename = "shouldSkipAssigningContactForExisting",
default,
skip_serializing_if = "Option::is_none"
)]
pub should_skip_assigning_contact_for_existing: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub notes: Option<String>,
#[serde(rename = "pixelId", default, skip_serializing_if = "Option::is_none")]
pub pixel_id: Option<String>,
#[serde(
rename = "formSubmitType",
default,
skip_serializing_if = "Option::is_none"
)]
pub form_submit_type: Option<String>,
#[serde(
rename = "formSubmitRedirectURL",
default,
skip_serializing_if = "Option::is_none"
)]
pub form_submit_redirect_url: Option<String>,
#[serde(
rename = "formSubmitThanksMessage",
default,
skip_serializing_if = "Option::is_none"
)]
pub form_submit_thanks_message: Option<String>,
#[serde(
rename = "availabilityType",
default,
skip_serializing_if = "Option::is_none"
)]
pub availability_type: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub availabilities: Vec<Availability>,
#[serde(rename = "guestType", default, skip_serializing_if = "Option::is_none")]
pub guest_type: Option<String>,
#[serde(
rename = "consentLabel",
default,
skip_serializing_if = "Option::is_none"
)]
pub consent_label: Option<String>,
#[serde(
rename = "calendarCoverImage",
default,
skip_serializing_if = "Option::is_none"
)]
pub calendar_cover_image: Option<String>,
#[serde(
rename = "lookBusyConfig",
default,
skip_serializing_if = "Option::is_none"
)]
pub look_busy_config: Option<LookBusyConfiguration>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarDTO {
#[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub notifications: Vec<CalendarNotification>,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
pub group_id: Option<String>,
#[serde(rename = "teamMembers", default, skip_serializing_if = "Vec::is_empty")]
pub team_members: Vec<TeamMemberResponse>,
#[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
pub event_type: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
#[serde(
rename = "widgetSlug",
default,
skip_serializing_if = "Option::is_none"
)]
pub widget_slug: Option<String>,
#[serde(
rename = "calendarType",
default,
skip_serializing_if = "Option::is_none"
)]
pub calendar_type: Option<String>,
#[serde(
rename = "widgetType",
default,
skip_serializing_if = "Option::is_none"
)]
pub widget_type: Option<String>,
#[serde(
rename = "eventTitle",
default,
skip_serializing_if = "Option::is_none"
)]
pub event_title: Option<String>,
#[serde(
rename = "eventColor",
default,
skip_serializing_if = "Option::is_none"
)]
pub event_color: Option<String>,
#[serde(
rename = "meetingLocation",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location: Option<String>,
#[serde(
rename = "locationConfigurations",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub location_configurations: Vec<LocationConfigurationResponse>,
#[serde(
rename = "slotDuration",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_duration: Option<f64>,
#[serde(
rename = "slotDurationUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_duration_unit: Option<String>,
#[serde(
rename = "slotInterval",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_interval: Option<f64>,
#[serde(
rename = "slotIntervalUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_interval_unit: Option<String>,
#[serde(
rename = "slotBuffer",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_buffer: Option<f64>,
#[serde(
rename = "slotBufferUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_buffer_unit: Option<String>,
#[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
pub pre_buffer: Option<f64>,
#[serde(
rename = "preBufferUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub pre_buffer_unit: Option<String>,
#[serde(
rename = "appoinmentPerSlot",
default,
skip_serializing_if = "Option::is_none"
)]
pub appoinment_per_slot: Option<f64>,
#[serde(
rename = "appoinmentPerDay",
default,
skip_serializing_if = "Option::is_none"
)]
pub appoinment_per_day: Option<f64>,
#[serde(
rename = "allowBookingAfter",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_after: Option<f64>,
#[serde(
rename = "allowBookingAfterUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_after_unit: Option<String>,
#[serde(
rename = "allowBookingFor",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_for: Option<f64>,
#[serde(
rename = "allowBookingForUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_for_unit: Option<String>,
#[serde(rename = "openHours", default, skip_serializing_if = "Vec::is_empty")]
pub open_hours: Vec<OpenHour>,
#[serde(
rename = "enableRecurring",
default,
skip_serializing_if = "Option::is_none"
)]
pub enable_recurring: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub recurring: Option<Recurring>,
#[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
pub form_id: Option<String>,
#[serde(
rename = "stickyContact",
default,
skip_serializing_if = "Option::is_none"
)]
pub sticky_contact: Option<bool>,
#[serde(
rename = "isLivePaymentMode",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_live_payment_mode: Option<bool>,
#[serde(
rename = "autoConfirm",
default,
skip_serializing_if = "Option::is_none"
)]
pub auto_confirm: Option<bool>,
#[serde(
rename = "shouldSendAlertEmailsToAssignedMember",
default,
skip_serializing_if = "Option::is_none"
)]
pub should_send_alert_emails_to_assigned_member: Option<bool>,
#[serde(
rename = "alertEmail",
default,
skip_serializing_if = "Option::is_none"
)]
pub alert_email: Option<String>,
#[serde(
rename = "googleInvitationEmails",
default,
skip_serializing_if = "Option::is_none"
)]
pub google_invitation_emails: Option<bool>,
#[serde(
rename = "allowReschedule",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_reschedule: Option<bool>,
#[serde(
rename = "allowCancellation",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_cancellation: Option<bool>,
#[serde(
rename = "shouldAssignContactToTeamMember",
default,
skip_serializing_if = "Option::is_none"
)]
pub should_assign_contact_to_team_member: Option<bool>,
#[serde(
rename = "shouldSkipAssigningContactForExisting",
default,
skip_serializing_if = "Option::is_none"
)]
pub should_skip_assigning_contact_for_existing: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub notes: Option<String>,
#[serde(rename = "pixelId", default, skip_serializing_if = "Option::is_none")]
pub pixel_id: Option<String>,
#[serde(
rename = "formSubmitType",
default,
skip_serializing_if = "Option::is_none"
)]
pub form_submit_type: Option<String>,
#[serde(
rename = "formSubmitRedirectURL",
default,
skip_serializing_if = "Option::is_none"
)]
pub form_submit_redirect_url: Option<String>,
#[serde(
rename = "formSubmitThanksMessage",
default,
skip_serializing_if = "Option::is_none"
)]
pub form_submit_thanks_message: Option<String>,
#[serde(
rename = "availabilityType",
default,
skip_serializing_if = "Option::is_none"
)]
pub availability_type: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub availabilities: Vec<Availability>,
#[serde(rename = "guestType", default, skip_serializing_if = "Option::is_none")]
pub guest_type: Option<String>,
#[serde(
rename = "consentLabel",
default,
skip_serializing_if = "Option::is_none"
)]
pub consent_label: Option<String>,
#[serde(
rename = "calendarCoverImage",
default,
skip_serializing_if = "Option::is_none"
)]
pub calendar_cover_image: Option<String>,
#[serde(
rename = "lookBusyConfig",
default,
skip_serializing_if = "Option::is_none"
)]
pub look_busy_config: Option<LookBusyConfiguration>,
pub id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarDeleteSuccessfulResponseDTO {
pub success: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarEventDTO {
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
pub title: String,
#[serde(rename = "calendarId")]
pub calendar_id: String,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(rename = "contactId")]
pub contact_id: String,
#[serde(rename = "groupId")]
pub group_id: String,
#[serde(rename = "appointmentStatus")]
pub appointment_status: String,
#[serde(rename = "assignedUserId")]
pub assigned_user_id: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub users: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub notes: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(
rename = "isRecurring",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_recurring: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rrule: Option<String>,
#[serde(rename = "startTime")]
pub start_time: serde_json::Value,
#[serde(rename = "endTime")]
pub end_time: serde_json::Value,
#[serde(rename = "dateAdded")]
pub date_added: serde_json::Value,
#[serde(rename = "dateUpdated")]
pub date_updated: serde_json::Value,
#[serde(
rename = "assignedResources",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub assigned_resources: Vec<String>,
#[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<CreatedOrUpdatedBy>,
#[serde(
rename = "masterEventId",
default,
skip_serializing_if = "Option::is_none"
)]
pub master_event_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarNotification {
#[serde(rename = "type", default, skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
#[serde(rename = "shouldSendToContact")]
pub should_send_to_contact: bool,
#[serde(rename = "shouldSendToGuest")]
pub should_send_to_guest: bool,
#[serde(rename = "shouldSendToUser")]
pub should_send_to_user: bool,
#[serde(rename = "shouldSendToSelectedUsers")]
pub should_send_to_selected_users: bool,
#[serde(rename = "selectedUsers")]
pub selected_users: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarNotificationDeleteResponseDTO {
pub message: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarNotificationResponseDTO {
#[serde(rename = "_id", default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(
rename = "receiverType",
default,
skip_serializing_if = "Option::is_none"
)]
pub receiver_type: Option<String>,
#[serde(
rename = "additionalEmailIds",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub additional_email_ids: Vec<String>,
#[serde(
rename = "additionalPhoneNumbers",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub additional_phone_numbers: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub channel: Option<String>,
#[serde(
rename = "notificationType",
default,
skip_serializing_if = "Option::is_none"
)]
pub notification_type: Option<String>,
#[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(
rename = "additionalWhatsappNumbers",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub additional_whatsapp_numbers: Vec<String>,
#[serde(
rename = "templateId",
default,
skip_serializing_if = "Option::is_none"
)]
pub template_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(rename = "afterTime", default, skip_serializing_if = "Vec::is_empty")]
pub after_time: Vec<SchedulesDTO>,
#[serde(rename = "beforeTime", default, skip_serializing_if = "Vec::is_empty")]
pub before_time: Vec<SchedulesDTO>,
#[serde(
rename = "selectedUsers",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub selected_users: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarResourceByIdResponseDTO {
#[serde(rename = "locationId")]
pub location_id: String,
pub name: String,
#[serde(rename = "resourceType")]
pub resource_type: String,
#[serde(rename = "isActive")]
pub is_active: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quantity: Option<f64>,
#[serde(
rename = "outOfService",
default,
skip_serializing_if = "Option::is_none"
)]
pub out_of_service: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capacity: Option<f64>,
#[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
pub calendar_ids: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarResourceResponseDTO {
#[serde(rename = "locationId")]
pub location_id: String,
pub name: String,
#[serde(rename = "resourceType")]
pub resource_type: String,
#[serde(rename = "isActive")]
pub is_active: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quantity: Option<f64>,
#[serde(
rename = "outOfService",
default,
skip_serializing_if = "Option::is_none"
)]
pub out_of_service: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capacity: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarUpdateDTO {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub notifications: Vec<CalendarNotification>,
#[serde(rename = "groupId", default, skip_serializing_if = "Option::is_none")]
pub group_id: Option<String>,
#[serde(rename = "teamMembers", default, skip_serializing_if = "Vec::is_empty")]
pub team_members: Vec<TeamMember>,
#[serde(rename = "eventType", default, skip_serializing_if = "Option::is_none")]
pub event_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub slug: Option<String>,
#[serde(
rename = "widgetSlug",
default,
skip_serializing_if = "Option::is_none"
)]
pub widget_slug: Option<String>,
#[serde(
rename = "widgetType",
default,
skip_serializing_if = "Option::is_none"
)]
pub widget_type: Option<String>,
#[serde(
rename = "eventTitle",
default,
skip_serializing_if = "Option::is_none"
)]
pub event_title: Option<String>,
#[serde(
rename = "eventColor",
default,
skip_serializing_if = "Option::is_none"
)]
pub event_color: Option<String>,
#[serde(
rename = "locationConfigurations",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub location_configurations: Vec<LocationConfiguration>,
#[serde(
rename = "meetingLocation",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location: Option<String>,
#[serde(
rename = "slotDuration",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_duration: Option<f64>,
#[serde(
rename = "slotDurationUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_duration_unit: Option<String>,
#[serde(
rename = "preBufferUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub pre_buffer_unit: Option<String>,
#[serde(
rename = "slotInterval",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_interval: Option<f64>,
#[serde(
rename = "slotIntervalUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_interval_unit: Option<String>,
#[serde(
rename = "slotBuffer",
default,
skip_serializing_if = "Option::is_none"
)]
pub slot_buffer: Option<f64>,
#[serde(rename = "preBuffer", default, skip_serializing_if = "Option::is_none")]
pub pre_buffer: Option<f64>,
#[serde(
rename = "appoinmentPerSlot",
default,
skip_serializing_if = "Option::is_none"
)]
pub appoinment_per_slot: Option<f64>,
#[serde(
rename = "appoinmentPerDay",
default,
skip_serializing_if = "Option::is_none"
)]
pub appoinment_per_day: Option<f64>,
#[serde(
rename = "allowBookingAfter",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_after: Option<f64>,
#[serde(
rename = "allowBookingAfterUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_after_unit: Option<String>,
#[serde(
rename = "allowBookingFor",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_for: Option<f64>,
#[serde(
rename = "allowBookingForUnit",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_booking_for_unit: Option<String>,
#[serde(rename = "openHours", default, skip_serializing_if = "Vec::is_empty")]
pub open_hours: Vec<OpenHour>,
#[serde(
rename = "enableRecurring",
default,
skip_serializing_if = "Option::is_none"
)]
pub enable_recurring: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub recurring: Option<Recurring>,
#[serde(rename = "formId", default, skip_serializing_if = "Option::is_none")]
pub form_id: Option<String>,
#[serde(
rename = "stickyContact",
default,
skip_serializing_if = "Option::is_none"
)]
pub sticky_contact: Option<bool>,
#[serde(
rename = "isLivePaymentMode",
default,
skip_serializing_if = "Option::is_none"
)]
pub is_live_payment_mode: Option<bool>,
#[serde(
rename = "autoConfirm",
default,
skip_serializing_if = "Option::is_none"
)]
pub auto_confirm: Option<bool>,
#[serde(
rename = "shouldSendAlertEmailsToAssignedMember",
default,
skip_serializing_if = "Option::is_none"
)]
pub should_send_alert_emails_to_assigned_member: Option<bool>,
#[serde(
rename = "alertEmail",
default,
skip_serializing_if = "Option::is_none"
)]
pub alert_email: Option<String>,
#[serde(
rename = "googleInvitationEmails",
default,
skip_serializing_if = "Option::is_none"
)]
pub google_invitation_emails: Option<bool>,
#[serde(
rename = "allowReschedule",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_reschedule: Option<bool>,
#[serde(
rename = "allowCancellation",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_cancellation: Option<bool>,
#[serde(
rename = "shouldAssignContactToTeamMember",
default,
skip_serializing_if = "Option::is_none"
)]
pub should_assign_contact_to_team_member: Option<bool>,
#[serde(
rename = "shouldSkipAssigningContactForExisting",
default,
skip_serializing_if = "Option::is_none"
)]
pub should_skip_assigning_contact_for_existing: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub notes: Option<String>,
#[serde(rename = "pixelId", default, skip_serializing_if = "Option::is_none")]
pub pixel_id: Option<String>,
#[serde(
rename = "formSubmitType",
default,
skip_serializing_if = "Option::is_none"
)]
pub form_submit_type: Option<String>,
#[serde(
rename = "formSubmitRedirectURL",
default,
skip_serializing_if = "Option::is_none"
)]
pub form_submit_redirect_url: Option<String>,
#[serde(
rename = "formSubmitThanksMessage",
default,
skip_serializing_if = "Option::is_none"
)]
pub form_submit_thanks_message: Option<String>,
#[serde(
rename = "availabilityType",
default,
skip_serializing_if = "Option::is_none"
)]
pub availability_type: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub availabilities: Vec<UpdateAvailability>,
#[serde(rename = "guestType", default, skip_serializing_if = "Option::is_none")]
pub guest_type: Option<String>,
#[serde(
rename = "consentLabel",
default,
skip_serializing_if = "Option::is_none"
)]
pub consent_label: Option<String>,
#[serde(
rename = "calendarCoverImage",
default,
skip_serializing_if = "Option::is_none"
)]
pub calendar_cover_image: Option<String>,
#[serde(
rename = "lookBusyConfig",
default,
skip_serializing_if = "Option::is_none"
)]
pub look_busy_config: Option<LookBusyConfiguration>,
#[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CalendarsGetSuccessfulResponseDTO {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub calendars: Vec<CalendarDTO>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateCalendarNotificationDTO {
#[serde(rename = "receiverType")]
pub receiver_type: String,
pub channel: String,
#[serde(rename = "notificationType")]
pub notification_type: String,
#[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(
rename = "templateId",
default,
skip_serializing_if = "Option::is_none"
)]
pub template_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(rename = "afterTime", default, skip_serializing_if = "Vec::is_empty")]
pub after_time: Vec<SchedulesDTO>,
#[serde(rename = "beforeTime", default, skip_serializing_if = "Vec::is_empty")]
pub before_time: Vec<SchedulesDTO>,
#[serde(
rename = "additionalEmailIds",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub additional_email_ids: Vec<String>,
#[serde(
rename = "additionalPhoneNumbers",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub additional_phone_numbers: Vec<String>,
#[serde(
rename = "selectedUsers",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub selected_users: Vec<String>,
#[serde(
rename = "fromAddress",
default,
skip_serializing_if = "Option::is_none"
)]
pub from_address: Option<String>,
#[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
pub from_name: Option<String>,
#[serde(
rename = "fromNumber",
default,
skip_serializing_if = "Option::is_none"
)]
pub from_number: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateCalendarResourceDTO {
#[serde(rename = "locationId")]
pub location_id: String,
pub name: String,
pub description: String,
pub quantity: f64,
#[serde(rename = "outOfService")]
pub out_of_service: f64,
pub capacity: f64,
#[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
pub calendar_ids: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreateScheduleDTO {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub rules: Vec<ScheduleRuleDTO>,
pub timezone: String,
#[serde(rename = "locationId")]
pub location_id: String,
pub name: String,
#[serde(rename = "userId")]
pub user_id: String,
#[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
pub calendar_ids: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct CreatedOrUpdatedBy {
#[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
pub source: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeleteAppointmentSchema {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeleteEventSuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub succeeded: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DeleteNoteSuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetAllSchedulesResponseDTO {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub schedules: Vec<ScheduleObjectResponseDTO>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetCalendarEventSuccessfulResponseDTO {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub event: Option<CalendarEventDTO>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetCalendarEventsSuccessfulResponseDTO {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub events: Vec<CalendarEventDTO>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetCreateUpdateNoteSuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub note: Option<GetNoteSchema>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetNoteSchema {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(rename = "dateAdded", default, skip_serializing_if = "Option::is_none")]
pub date_added: Option<String>,
#[serde(rename = "contactId", default, skip_serializing_if = "Option::is_none")]
pub contact_id: Option<String>,
#[serde(rename = "createdBy", default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<NoteCreatedBySchema>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GetNotesListSuccessfulResponseDto {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub notes: Vec<GetNoteSchema>,
#[serde(rename = "hasMore", default, skip_serializing_if = "Option::is_none")]
pub has_more: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GroupCreateDTO {
#[serde(rename = "locationId")]
pub location_id: String,
pub name: String,
pub description: String,
pub slug: String,
#[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GroupCreateSuccessfulResponseDTO {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub group: Option<GroupDTO>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GroupDTO {
#[serde(rename = "locationId")]
pub location_id: String,
pub name: String,
pub description: String,
pub slug: String,
#[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GroupStatusUpdateParams {
#[serde(rename = "isActive")]
pub is_active: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GroupSuccessfulResponseDTO {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct GroupUpdateDTO {
pub name: String,
pub description: String,
pub slug: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct Hour {
#[serde(rename = "openHour")]
pub open_hour: f64,
#[serde(rename = "openMinute")]
pub open_minute: f64,
#[serde(rename = "closeHour")]
pub close_hour: f64,
#[serde(rename = "closeMinute")]
pub close_minute: f64,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LocationConfiguration {
pub kind: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LocationConfigurationResponse {
pub kind: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(rename = "meetingId", default, skip_serializing_if = "Option::is_none")]
pub meeting_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct LookBusyConfiguration {
pub enabled: bool,
#[serde(rename = "LookBusyPercentage")]
pub look_busy_percentage: f64,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct NoteCreatedBySchema {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct NotesDTO {
#[serde(rename = "userId", default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
pub body: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct OpenHour {
#[serde(
rename = "daysOfTheWeek",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub days_of_the_week: Vec<f64>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub hours: Vec<Hour>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct Recurring {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub freq: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub count: Option<f64>,
#[serde(
rename = "bookingOption",
default,
skip_serializing_if = "Option::is_none"
)]
pub booking_option: Option<String>,
#[serde(
rename = "bookingOverlapDefaultStatus",
default,
skip_serializing_if = "Option::is_none"
)]
pub booking_overlap_default_status: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ResourceDeleteResponseDTO {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub success: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ScheduleIntervalDTO {
#[serde(rename = "from")]
pub from_: String,
pub to: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ScheduleObjectResponseDTO {
pub id: String,
pub name: String,
#[serde(rename = "locationId")]
pub location_id: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub rules: Vec<ScheduleRuleDTO>,
pub timezone: String,
#[serde(rename = "dateAdded")]
pub date_added: String,
#[serde(rename = "dateUpdated")]
pub date_updated: String,
#[serde(rename = "userId")]
pub user_id: String,
#[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
pub calendar_ids: Vec<String>,
pub deleted: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ScheduleResponseDTO {
pub schedule: ScheduleObjectResponseDTO,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ScheduleRuleDTO {
#[serde(rename = "type")]
pub type_: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub intervals: Vec<ScheduleIntervalDTO>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub day: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SchedulesDTO {
#[serde(
rename = "timeOffset",
default,
skip_serializing_if = "Option::is_none"
)]
pub time_offset: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unit: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct SlotsSchema {
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub slots: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct TeamMember {
#[serde(rename = "userId")]
pub user_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub priority: Option<String>,
#[serde(
rename = "meetingLocationType",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location_type: Option<String>,
#[serde(
rename = "meetingLocation",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location: Option<String>,
#[serde(rename = "isPrimary", default, skip_serializing_if = "Option::is_none")]
pub is_primary: Option<bool>,
#[serde(
rename = "locationConfigurations",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub location_configurations: Vec<LocationConfiguration>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct TeamMemberResponse {
#[serde(rename = "userId")]
pub user_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub priority: Option<String>,
#[serde(
rename = "meetingLocationType",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location_type: Option<String>,
#[serde(
rename = "meetingLocation",
default,
skip_serializing_if = "Option::is_none"
)]
pub meeting_location: Option<String>,
#[serde(rename = "isPrimary", default, skip_serializing_if = "Option::is_none")]
pub is_primary: Option<bool>,
#[serde(
rename = "locationConfigurations",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub location_configurations: Vec<LocationConfigurationResponse>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateAvailability {
pub date: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub hours: Vec<Hour>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateCalendarNotificationsDTO {
#[serde(
rename = "receiverType",
default,
skip_serializing_if = "Option::is_none"
)]
pub receiver_type: Option<String>,
#[serde(
rename = "additionalEmailIds",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub additional_email_ids: Vec<String>,
#[serde(
rename = "additionalPhoneNumbers",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub additional_phone_numbers: Vec<String>,
#[serde(
rename = "selectedUsers",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub selected_users: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub channel: Option<String>,
#[serde(
rename = "notificationType",
default,
skip_serializing_if = "Option::is_none"
)]
pub notification_type: Option<String>,
#[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(
rename = "templateId",
default,
skip_serializing_if = "Option::is_none"
)]
pub template_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(rename = "afterTime", default, skip_serializing_if = "Vec::is_empty")]
pub after_time: Vec<SchedulesDTO>,
#[serde(rename = "beforeTime", default, skip_serializing_if = "Vec::is_empty")]
pub before_time: Vec<SchedulesDTO>,
#[serde(
rename = "fromAddress",
default,
skip_serializing_if = "Option::is_none"
)]
pub from_address: Option<String>,
#[serde(
rename = "fromNumber",
default,
skip_serializing_if = "Option::is_none"
)]
pub from_number: Option<String>,
#[serde(rename = "fromName", default, skip_serializing_if = "Option::is_none")]
pub from_name: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateCalendarResourceDTO {
#[serde(
rename = "locationId",
default,
skip_serializing_if = "Option::is_none"
)]
pub location_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quantity: Option<f64>,
#[serde(
rename = "outOfService",
default,
skip_serializing_if = "Option::is_none"
)]
pub out_of_service: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capacity: Option<f64>,
#[serde(rename = "calendarIds", default, skip_serializing_if = "Vec::is_empty")]
pub calendar_ids: Vec<String>,
#[serde(rename = "isActive", default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct UpdateScheduleDTO {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub rules: Vec<ScheduleRuleDTO>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ValidateGroupSlugPostBody {
#[serde(rename = "locationId")]
pub location_id: String,
pub slug: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ValidateGroupSlugSuccessResponseDTO {
pub available: bool,
}