1use crate::client::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ApiCommentBase {
16 #[serde(rename = "_id")]
17 pub _id: String,
18 #[serde(rename = "aiDeterminedSpam", skip_serializing_if = "Option::is_none")]
19 pub ai_determined_spam: Option<bool>,
20 #[serde(rename = "anonUserId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
21 pub anon_user_id: Option<Option<String>>,
22 #[serde(rename = "approved")]
23 pub approved: bool,
24 #[serde(rename = "avatarSrc", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
25 pub avatar_src: Option<Option<String>>,
26 #[serde(rename = "badges", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27 pub badges: Option<Option<Vec<models::CommentUserBadgeInfo>>>,
28 #[serde(rename = "comment")]
29 pub comment: String,
30 #[serde(rename = "commentHTML")]
31 pub comment_html: String,
32 #[serde(rename = "commenterEmail", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub commenter_email: Option<Option<String>>,
34 #[serde(rename = "commenterLink", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub commenter_link: Option<Option<String>>,
36 #[serde(rename = "commenterName")]
37 pub commenter_name: String,
38 #[serde(rename = "date", deserialize_with = "Option::deserialize")]
39 pub date: Option<String>,
40 #[serde(rename = "displayLabel", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
41 pub display_label: Option<Option<String>>,
42 #[serde(rename = "domain", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
43 pub domain: Option<Option<String>>,
44 #[serde(rename = "externalId", skip_serializing_if = "Option::is_none")]
45 pub external_id: Option<String>,
46 #[serde(rename = "externalParentId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
47 pub external_parent_id: Option<Option<String>>,
48 #[serde(rename = "expireAt", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
49 pub expire_at: Option<Option<String>>,
50 #[serde(rename = "feedbackIds", skip_serializing_if = "Option::is_none")]
51 pub feedback_ids: Option<Vec<String>>,
52 #[serde(rename = "flagCount", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
53 pub flag_count: Option<Option<i32>>,
54 #[serde(rename = "fromProductId", skip_serializing_if = "Option::is_none")]
55 pub from_product_id: Option<i32>,
56 #[serde(rename = "hasCode", skip_serializing_if = "Option::is_none")]
57 pub has_code: Option<bool>,
58 #[serde(rename = "hasImages", skip_serializing_if = "Option::is_none")]
59 pub has_images: Option<bool>,
60 #[serde(rename = "hasLinks", skip_serializing_if = "Option::is_none")]
61 pub has_links: Option<bool>,
62 #[serde(rename = "hashTags", skip_serializing_if = "Option::is_none")]
63 pub hash_tags: Option<Vec<models::CommentUserHashTagInfo>>,
64 #[serde(rename = "isByAdmin", skip_serializing_if = "Option::is_none")]
65 pub is_by_admin: Option<bool>,
66 #[serde(rename = "isByModerator", skip_serializing_if = "Option::is_none")]
67 pub is_by_moderator: Option<bool>,
68 #[serde(rename = "isDeleted", skip_serializing_if = "Option::is_none")]
69 pub is_deleted: Option<bool>,
70 #[serde(rename = "isDeletedUser", skip_serializing_if = "Option::is_none")]
71 pub is_deleted_user: Option<bool>,
72 #[serde(rename = "isPinned", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
73 pub is_pinned: Option<Option<bool>>,
74 #[serde(rename = "isLocked", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
75 pub is_locked: Option<Option<bool>>,
76 #[serde(rename = "isSpam", skip_serializing_if = "Option::is_none")]
77 pub is_spam: Option<bool>,
78 #[serde(rename = "localDateHours", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
79 pub local_date_hours: Option<Option<i32>>,
80 #[serde(rename = "localDateString", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
81 pub local_date_string: Option<Option<String>>,
82 #[serde(rename = "locale", deserialize_with = "Option::deserialize")]
83 pub locale: Option<String>,
84 #[serde(rename = "mentions", skip_serializing_if = "Option::is_none")]
85 pub mentions: Option<Vec<models::CommentUserMentionInfo>>,
86 #[serde(rename = "meta", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
87 pub meta: Option<Option<models::FCommentMeta>>,
88 #[serde(rename = "moderationGroupIds", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
89 pub moderation_group_ids: Option<Option<Vec<String>>>,
90 #[serde(rename = "notificationSentForParent", skip_serializing_if = "Option::is_none")]
91 pub notification_sent_for_parent: Option<bool>,
92 #[serde(rename = "notificationSentForParentTenant", skip_serializing_if = "Option::is_none")]
93 pub notification_sent_for_parent_tenant: Option<bool>,
94 #[serde(rename = "pageTitle", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
95 pub page_title: Option<Option<String>>,
96 #[serde(rename = "parentId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
97 pub parent_id: Option<Option<String>>,
98 #[serde(rename = "rating", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
99 pub rating: Option<Option<f64>>,
100 #[serde(rename = "reviewed", skip_serializing_if = "Option::is_none")]
101 pub reviewed: Option<bool>,
102 #[serde(rename = "tenantId")]
103 pub tenant_id: String,
104 #[serde(rename = "url")]
105 pub url: String,
106 #[serde(rename = "urlId")]
107 pub url_id: String,
108 #[serde(rename = "urlIdRaw", skip_serializing_if = "Option::is_none")]
109 pub url_id_raw: Option<String>,
110 #[serde(rename = "userId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
111 pub user_id: Option<Option<String>>,
112 #[serde(rename = "verified")]
113 pub verified: bool,
114 #[serde(rename = "verifiedDate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
115 pub verified_date: Option<Option<String>>,
116 #[serde(rename = "votes", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
117 pub votes: Option<Option<i32>>,
118 #[serde(rename = "votesDown", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
119 pub votes_down: Option<Option<i32>>,
120 #[serde(rename = "votesUp", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
121 pub votes_up: Option<Option<i32>>,
122}
123
124impl ApiCommentBase {
125 pub fn new(_id: String, approved: bool, comment: String, comment_html: String, commenter_name: String, date: Option<String>, locale: Option<String>, tenant_id: String, url: String, url_id: String, verified: bool) -> ApiCommentBase {
126 ApiCommentBase {
127 _id,
128 ai_determined_spam: None,
129 anon_user_id: None,
130 approved,
131 avatar_src: None,
132 badges: None,
133 comment,
134 comment_html,
135 commenter_email: None,
136 commenter_link: None,
137 commenter_name,
138 date,
139 display_label: None,
140 domain: None,
141 external_id: None,
142 external_parent_id: None,
143 expire_at: None,
144 feedback_ids: None,
145 flag_count: None,
146 from_product_id: None,
147 has_code: None,
148 has_images: None,
149 has_links: None,
150 hash_tags: None,
151 is_by_admin: None,
152 is_by_moderator: None,
153 is_deleted: None,
154 is_deleted_user: None,
155 is_pinned: None,
156 is_locked: None,
157 is_spam: None,
158 local_date_hours: None,
159 local_date_string: None,
160 locale,
161 mentions: None,
162 meta: None,
163 moderation_group_ids: None,
164 notification_sent_for_parent: None,
165 notification_sent_for_parent_tenant: None,
166 page_title: None,
167 parent_id: None,
168 rating: None,
169 reviewed: None,
170 tenant_id,
171 url,
172 url_id,
173 url_id_raw: None,
174 user_id: None,
175 verified,
176 verified_date: None,
177 votes: None,
178 votes_down: None,
179 votes_up: None,
180 }
181 }
182}
183