highlevel_api/apis/calendars/
types.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct Calendar {
6 pub id: String,
7 pub location_id: String,
8 pub name: String,
9 #[serde(skip_serializing_if = "Option::is_none")]
10 pub description: Option<String>,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub slug: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub group_id: Option<String>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub event_type: Option<String>,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub event_title: Option<String>,
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub slot_duration: Option<u32>,
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub slot_buffer: Option<u32>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub pre_buffer_unit: Option<String>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub appointment_per_slot: Option<u32>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub appointment_per_day: Option<u32>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub is_active: Option<bool>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
34pub struct GetCalendarsResponse {
35 pub calendars: Vec<Calendar>,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
39pub struct GetCalendarResponse {
40 pub calendar: Calendar,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize, Default)]
44#[serde(rename_all = "camelCase")]
45pub struct CreateCalendarParams {
46 pub location_id: String,
47 pub name: String,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub description: Option<String>,
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub slug: Option<String>,
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub event_type: Option<String>,
54 #[serde(skip_serializing_if = "Option::is_none")]
55 pub slot_duration: Option<u32>,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub slot_buffer: Option<u32>,
58 #[serde(skip_serializing_if = "Option::is_none")]
59 pub appointment_per_slot: Option<u32>,
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize, Default)]
63#[serde(rename_all = "camelCase")]
64pub struct UpdateCalendarParams {
65 #[serde(skip_serializing_if = "Option::is_none")]
66 pub name: Option<String>,
67 #[serde(skip_serializing_if = "Option::is_none")]
68 pub description: Option<String>,
69 #[serde(skip_serializing_if = "Option::is_none")]
70 pub slug: Option<String>,
71 #[serde(skip_serializing_if = "Option::is_none")]
72 pub event_type: Option<String>,
73 #[serde(skip_serializing_if = "Option::is_none")]
74 pub slot_duration: Option<u32>,
75 #[serde(skip_serializing_if = "Option::is_none")]
76 pub slot_buffer: Option<u32>,
77 #[serde(skip_serializing_if = "Option::is_none")]
78 pub appointment_per_slot: Option<u32>,
79 #[serde(skip_serializing_if = "Option::is_none")]
80 pub is_active: Option<bool>,
81}
82
83#[derive(Debug, Clone, Serialize, Deserialize)]
84pub struct DeleteCalendarResponse {
85 pub succeded: bool,
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize, Default)]
91#[serde(rename_all = "camelCase")]
92pub struct GetFreeSlotsParams {
93 pub location_id: String,
94 pub start_date: String,
95 pub end_date: String,
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub timezone: Option<String>,
98 #[serde(skip_serializing_if = "Option::is_none")]
99 pub user_id: Option<String>,
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
103#[serde(rename_all = "camelCase")]
104pub struct Slot {
105 pub slots: Vec<String>,
106}
107
108#[derive(Debug, Clone, Serialize, Deserialize)]
109pub struct FreeSlotsResponse {
110 #[serde(flatten)]
111 pub dates: std::collections::HashMap<String, Slot>,
112}
113
114#[derive(Debug, Clone, Serialize, Deserialize, Default)]
117#[serde(rename_all = "camelCase")]
118pub struct GetEventsParams {
119 pub location_id: String,
120 #[serde(skip_serializing_if = "Option::is_none")]
121 pub calendar_id: Option<String>,
122 #[serde(skip_serializing_if = "Option::is_none")]
123 pub group_id: Option<String>,
124 #[serde(skip_serializing_if = "Option::is_none")]
125 pub start_time: Option<i64>,
126 #[serde(skip_serializing_if = "Option::is_none")]
127 pub end_time: Option<i64>,
128 #[serde(skip_serializing_if = "Option::is_none")]
129 pub user_id: Option<String>,
130 #[serde(skip_serializing_if = "Option::is_none")]
131 pub contact_id: Option<String>,
132 #[serde(skip_serializing_if = "Option::is_none")]
133 pub limit: Option<u32>,
134 #[serde(skip_serializing_if = "Option::is_none")]
135 pub skip: Option<u32>,
136}
137
138#[derive(Debug, Clone, Serialize, Deserialize)]
139#[serde(rename_all = "camelCase")]
140pub struct CalendarEvent {
141 pub id: String,
142 pub location_id: String,
143 #[serde(skip_serializing_if = "Option::is_none")]
144 pub calendar_id: Option<String>,
145 pub contact_id: String,
146 #[serde(skip_serializing_if = "Option::is_none")]
147 pub title: Option<String>,
148 pub start_time: String,
149 pub end_time: String,
150 #[serde(skip_serializing_if = "Option::is_none")]
151 pub status: Option<String>,
152 #[serde(skip_serializing_if = "Option::is_none")]
153 pub appointment_status: Option<String>,
154 #[serde(skip_serializing_if = "Option::is_none")]
155 pub assigned_user_id: Option<String>,
156 #[serde(skip_serializing_if = "Option::is_none")]
157 pub address: Option<String>,
158 #[serde(skip_serializing_if = "Option::is_none")]
159 pub notes: Option<String>,
160}
161
162#[derive(Debug, Clone, Serialize, Deserialize)]
163pub struct GetEventsResponse {
164 pub events: Vec<CalendarEvent>,
165}
166
167#[derive(Debug, Clone, Serialize, Deserialize)]
168pub struct GetEventResponse {
169 pub event: CalendarEvent,
170}
171
172#[derive(Debug, Clone, Serialize, Deserialize, Default)]
173#[serde(rename_all = "camelCase")]
174pub struct CreateEventParams {
175 pub calendar_id: String,
176 pub location_id: String,
177 pub contact_id: String,
178 pub start_time: String,
179 pub end_time: String,
180 #[serde(skip_serializing_if = "Option::is_none")]
181 pub title: Option<String>,
182 #[serde(skip_serializing_if = "Option::is_none")]
183 pub appointment_status: Option<String>,
184 #[serde(skip_serializing_if = "Option::is_none")]
185 pub assigned_user_id: Option<String>,
186 #[serde(skip_serializing_if = "Option::is_none")]
187 pub address: Option<String>,
188 #[serde(skip_serializing_if = "Option::is_none")]
189 pub notes: Option<String>,
190 #[serde(skip_serializing_if = "Option::is_none")]
191 pub timezone: Option<String>,
192 #[serde(skip_serializing_if = "Option::is_none")]
193 pub ignore_date_range: Option<bool>,
194 #[serde(skip_serializing_if = "Option::is_none")]
195 pub to_notify: Option<bool>,
196}
197
198#[derive(Debug, Clone, Serialize, Deserialize, Default)]
199#[serde(rename_all = "camelCase")]
200pub struct UpdateEventParams {
201 #[serde(skip_serializing_if = "Option::is_none")]
202 pub start_time: Option<String>,
203 #[serde(skip_serializing_if = "Option::is_none")]
204 pub end_time: Option<String>,
205 #[serde(skip_serializing_if = "Option::is_none")]
206 pub title: Option<String>,
207 #[serde(skip_serializing_if = "Option::is_none")]
208 pub appointment_status: Option<String>,
209 #[serde(skip_serializing_if = "Option::is_none")]
210 pub assigned_user_id: Option<String>,
211 #[serde(skip_serializing_if = "Option::is_none")]
212 pub address: Option<String>,
213 #[serde(skip_serializing_if = "Option::is_none")]
214 pub notes: Option<String>,
215}
216
217#[derive(Debug, Clone, Serialize, Deserialize)]
218pub struct DeleteEventResponse {
219 pub succeded: bool,
220}