fastcomments_sdk/client/src/models/
renderable_user_notification.rs1use crate::client::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct RenderableUserNotification {
16 #[serde(rename = "conversationId", skip_serializing_if = "Option::is_none")]
17 pub conversation_id: Option<String>,
18 #[serde(rename = "contextHTML", skip_serializing_if = "Option::is_none")]
19 pub context_html: Option<String>,
20 #[serde(rename = "fromUserNames", skip_serializing_if = "Option::is_none")]
21 pub from_user_names: Option<Vec<String>>,
22 #[serde(rename = "fromUserIds", skip_serializing_if = "Option::is_none")]
23 pub from_user_ids: Option<Vec<String>>,
24 #[serde(rename = "relatedIds", skip_serializing_if = "Option::is_none")]
25 pub related_ids: Option<Vec<String>>,
26 #[serde(rename = "count", skip_serializing_if = "Option::is_none")]
27 pub count: Option<i64>,
28 #[serde(rename = "optedOut")]
29 pub opted_out: bool,
30 #[serde(rename = "fromUserAvatarSrc", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
31 pub from_user_avatar_src: Option<Option<String>>,
32 #[serde(rename = "fromUserId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub from_user_id: Option<Option<String>>,
34 #[serde(rename = "fromUserName", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub from_user_name: Option<Option<String>>,
36 #[serde(rename = "fromCommentId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
37 pub from_comment_id: Option<Option<String>>,
38 #[serde(rename = "type")]
39 pub r#type: models::NotificationType,
40 #[serde(rename = "createdAt")]
41 pub created_at: String,
42 #[serde(rename = "sent")]
43 pub sent: String,
44 #[serde(rename = "viewed")]
45 pub viewed: String,
46 #[serde(rename = "relatedObjectId")]
47 pub related_object_id: String,
48 #[serde(rename = "relatedObjectType")]
49 pub related_object_type: models::NotificationObjectType,
50 #[serde(rename = "pageTitle", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
51 pub page_title: Option<Option<String>>,
52 #[serde(rename = "url")]
53 pub url: String,
54 #[serde(rename = "urlId")]
55 pub url_id: String,
56 #[serde(rename = "_id")]
57 pub _id: String,
58}
59
60impl RenderableUserNotification {
61 pub fn new(opted_out: bool, r#type: models::NotificationType, created_at: String, sent: String, viewed: String, related_object_id: String, related_object_type: models::NotificationObjectType, url: String, url_id: String, _id: String) -> RenderableUserNotification {
62 RenderableUserNotification {
63 conversation_id: None,
64 context_html: None,
65 from_user_names: None,
66 from_user_ids: None,
67 related_ids: None,
68 count: None,
69 opted_out,
70 from_user_avatar_src: None,
71 from_user_id: None,
72 from_user_name: None,
73 from_comment_id: None,
74 r#type,
75 created_at,
76 sent,
77 viewed,
78 related_object_id,
79 related_object_type,
80 page_title: None,
81 url,
82 url_id,
83 _id,
84 }
85 }
86}
87