Skip to main content

opentalk_mail_worker_protocol/v1/
invites.rs

1// SPDX-FileCopyrightText: OpenTalk GmbH <mail@opentalk.eu>
2//
3// SPDX-License-Identifier: EUPL-1.2
4
5use opentalk_types_common::utils::ExampleData;
6
7use super::{Event, EventException, ExternalUser, RegisteredUser, UnregisteredUser};
8
9#[derive(Clone, PartialEq, Eq, Debug)]
10#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
11#[cfg_attr(
12    feature = "utoipa",
13    derive(utoipa::ToSchema),
14    schema(example = json!(RegisteredEventInvite::example_data()))
15)]
16pub struct RegisteredEventInvite {
17    pub invitee: RegisteredUser,
18    pub event: Event,
19    pub inviter: RegisteredUser,
20}
21
22impl ExampleData for RegisteredEventInvite {
23    fn example_data() -> Self {
24        Self {
25            invitee: RegisteredUser::example_data(),
26            event: Event::example_data(),
27            inviter: example_inviter(),
28        }
29    }
30}
31
32#[derive(Clone, PartialEq, Eq, Debug)]
33#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
34#[cfg_attr(
35    feature = "utoipa",
36    derive(utoipa::ToSchema),
37    schema(example = json!(UnregisteredEventInvite::example_data()))
38)]
39pub struct UnregisteredEventInvite {
40    pub invitee: UnregisteredUser,
41    pub event: Event,
42    pub inviter: RegisteredUser,
43}
44
45impl ExampleData for UnregisteredEventInvite {
46    fn example_data() -> Self {
47        Self {
48            invitee: UnregisteredUser::example_data(),
49            event: Event::example_data(),
50            inviter: example_inviter(),
51        }
52    }
53}
54
55#[derive(Clone, PartialEq, Eq, Debug)]
56#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
57#[cfg_attr(
58    feature = "utoipa",
59    derive(utoipa::ToSchema),
60    schema(example = json!(ExternalEventInvite::example_data()))
61)]
62pub struct ExternalEventInvite {
63    pub invitee: ExternalUser,
64    pub event: Event,
65    pub inviter: RegisteredUser,
66}
67
68impl ExampleData for ExternalEventInvite {
69    fn example_data() -> Self {
70        Self {
71            invitee: ExternalUser::example_data(),
72            event: Event::example_data(),
73            inviter: example_inviter(),
74        }
75    }
76}
77
78#[derive(Clone, PartialEq, Eq, Debug)]
79#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
80#[cfg_attr(
81    feature = "utoipa",
82    derive(utoipa::ToSchema),
83    schema(example = json!(RegisteredEventUpdate::example_data()))
84)]
85pub struct RegisteredEventUpdate {
86    pub invitee: RegisteredUser,
87    pub event: Event,
88    pub event_exception: Option<EventException>,
89    pub inviter: RegisteredUser,
90}
91
92impl ExampleData for RegisteredEventUpdate {
93    fn example_data() -> Self {
94        Self {
95            invitee: RegisteredUser::example_data(),
96            event: Event::example_data(),
97            event_exception: Some(EventException::example_data()),
98            inviter: example_inviter(),
99        }
100    }
101}
102
103#[derive(Clone, PartialEq, Eq, Debug)]
104#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
105#[cfg_attr(
106    feature = "utoipa",
107    derive(utoipa::ToSchema),
108    schema(example = json!(UnregisteredEventUpdate::example_data()))
109)]
110pub struct UnregisteredEventUpdate {
111    pub invitee: UnregisteredUser,
112    pub event: Event,
113    pub event_exception: Option<EventException>,
114    pub inviter: RegisteredUser,
115}
116
117impl ExampleData for UnregisteredEventUpdate {
118    fn example_data() -> Self {
119        Self {
120            invitee: UnregisteredUser::example_data(),
121            event: Event::example_data(),
122            event_exception: Some(EventException::example_data()),
123            inviter: example_inviter(),
124        }
125    }
126}
127
128#[derive(Clone, PartialEq, Eq, Debug)]
129#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
130#[cfg_attr(
131    feature = "utoipa",
132    derive(utoipa::ToSchema),
133    schema(example = json!(ExternalEventUpdate::example_data()))
134)]
135pub struct ExternalEventUpdate {
136    pub invitee: ExternalUser,
137    pub event: Event,
138    pub event_exception: Option<EventException>,
139    pub inviter: RegisteredUser,
140}
141
142impl ExampleData for ExternalEventUpdate {
143    fn example_data() -> Self {
144        Self {
145            invitee: ExternalUser::example_data(),
146            event: Event::example_data(),
147            event_exception: Some(EventException::example_data()),
148            inviter: example_inviter(),
149        }
150    }
151}
152
153#[derive(Clone, PartialEq, Eq, Debug)]
154#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
155#[cfg_attr(
156    feature = "utoipa",
157    derive(utoipa::ToSchema),
158    schema(example = json!(RegisteredEventCancellation::example_data()))
159)]
160pub struct RegisteredEventCancellation {
161    pub invitee: RegisteredUser,
162    pub event: Event,
163    pub inviter: RegisteredUser,
164}
165
166impl ExampleData for RegisteredEventCancellation {
167    fn example_data() -> Self {
168        Self {
169            invitee: RegisteredUser::example_data(),
170            event: Event::example_data(),
171            inviter: example_inviter(),
172        }
173    }
174}
175
176#[derive(Clone, PartialEq, Eq, Debug)]
177#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
178#[cfg_attr(
179    feature = "utoipa",
180    derive(utoipa::ToSchema),
181    schema(example = json!(UnregisteredEventCancellation::example_data()))
182)]
183pub struct UnregisteredEventCancellation {
184    pub invitee: UnregisteredUser,
185    pub event: Event,
186    pub inviter: RegisteredUser,
187}
188
189impl ExampleData for UnregisteredEventCancellation {
190    fn example_data() -> Self {
191        Self {
192            invitee: UnregisteredUser::example_data(),
193            event: Event::example_data(),
194            inviter: example_inviter(),
195        }
196    }
197}
198
199#[derive(Clone, PartialEq, Eq, Debug)]
200#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
201#[cfg_attr(
202    feature = "utoipa",
203    derive(utoipa::ToSchema),
204    schema(example = json!(ExternalEventCancellation::example_data()))
205)]
206pub struct ExternalEventCancellation {
207    pub invitee: ExternalUser,
208    pub event: Event,
209    pub inviter: RegisteredUser,
210}
211
212impl ExampleData for ExternalEventCancellation {
213    fn example_data() -> Self {
214        Self {
215            invitee: ExternalUser::example_data(),
216            event: Event::example_data(),
217            inviter: example_inviter(),
218        }
219    }
220}
221
222#[derive(Clone, PartialEq, Eq, Debug)]
223#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
224#[cfg_attr(
225    feature = "utoipa",
226    derive(utoipa::ToSchema),
227    schema(example = json!(RegisteredEventUninvite::example_data()))
228)]
229pub struct RegisteredEventUninvite {
230    pub invitee: RegisteredUser,
231    pub event: Event,
232    pub inviter: RegisteredUser,
233}
234
235impl ExampleData for RegisteredEventUninvite {
236    fn example_data() -> Self {
237        Self {
238            invitee: RegisteredUser::example_data(),
239            event: Event::example_data(),
240            inviter: example_inviter(),
241        }
242    }
243}
244
245#[derive(Clone, PartialEq, Eq, Debug)]
246#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
247#[cfg_attr(
248    feature = "utoipa",
249    derive(utoipa::ToSchema),
250    schema(example = json!(UnregisteredEventUninvite::example_data()))
251)]
252pub struct UnregisteredEventUninvite {
253    pub invitee: UnregisteredUser,
254    pub event: Event,
255    pub inviter: RegisteredUser,
256}
257
258impl ExampleData for UnregisteredEventUninvite {
259    fn example_data() -> Self {
260        Self {
261            invitee: UnregisteredUser::example_data(),
262            event: Event::example_data(),
263            inviter: example_inviter(),
264        }
265    }
266}
267
268#[derive(Clone, PartialEq, Eq, Debug)]
269#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
270#[cfg_attr(
271    feature = "utoipa",
272    derive(utoipa::ToSchema),
273    schema(example = json!(ExternalEventUninvite::example_data()))
274)]
275pub struct ExternalEventUninvite {
276    pub invitee: ExternalUser,
277    pub event: Event,
278    pub inviter: RegisteredUser,
279}
280
281impl ExampleData for ExternalEventUninvite {
282    fn example_data() -> Self {
283        Self {
284            invitee: ExternalUser::example_data(),
285            event: Event::example_data(),
286            inviter: example_inviter(),
287        }
288    }
289}
290
291fn example_inviter() -> RegisteredUser {
292    RegisteredUser {
293        email: "dave.dunn@example.com".into(),
294        title: "".parse().expect("valid user title"),
295        first_name: "Dave".to_string(),
296        last_name: "Dunn".to_string(),
297        language: "en".parse().expect("valid language"),
298    }
299}