fastcomments_sdk/client/src/models/
comment_data.rs1use crate::client::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CommentData {
16 #[serde(rename = "date", skip_serializing_if = "Option::is_none")]
17 pub date: Option<i64>,
18 #[serde(rename = "localDateString", skip_serializing_if = "Option::is_none")]
19 pub local_date_string: Option<String>,
20 #[serde(rename = "localDateHours", skip_serializing_if = "Option::is_none")]
21 pub local_date_hours: Option<i32>,
22 #[serde(rename = "commenterName")]
23 pub commenter_name: String,
24 #[serde(rename = "commenterEmail", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
25 pub commenter_email: Option<Option<String>>,
26 #[serde(rename = "commenterLink", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27 pub commenter_link: Option<Option<String>>,
28 #[serde(rename = "comment")]
29 pub comment: String,
30 #[serde(rename = "productId", skip_serializing_if = "Option::is_none")]
31 pub product_id: Option<i32>,
32 #[serde(rename = "userId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub user_id: Option<Option<String>>,
34 #[serde(rename = "avatarSrc", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub avatar_src: Option<Option<String>>,
36 #[serde(rename = "parentId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
37 pub parent_id: Option<Option<String>>,
38 #[serde(rename = "mentions", skip_serializing_if = "Option::is_none")]
39 pub mentions: Option<Vec<models::CommentUserMentionInfo>>,
40 #[serde(rename = "hashTags", skip_serializing_if = "Option::is_none")]
41 pub hash_tags: Option<Vec<models::CommentUserHashTagInfo>>,
42 #[serde(rename = "pageTitle", skip_serializing_if = "Option::is_none")]
43 pub page_title: Option<String>,
44 #[serde(rename = "isFromMyAccountPage", skip_serializing_if = "Option::is_none")]
45 pub is_from_my_account_page: Option<bool>,
46 #[serde(rename = "url")]
47 pub url: String,
48 #[serde(rename = "urlId")]
49 pub url_id: String,
50 #[serde(rename = "meta", skip_serializing_if = "Option::is_none")]
51 pub meta: Option<serde_json::Value>,
52 #[serde(rename = "moderationGroupIds", skip_serializing_if = "Option::is_none")]
53 pub moderation_group_ids: Option<Vec<String>>,
54 #[serde(rename = "rating", skip_serializing_if = "Option::is_none")]
55 pub rating: Option<f64>,
56 #[serde(rename = "fromOfflineRestore", skip_serializing_if = "Option::is_none")]
57 pub from_offline_restore: Option<bool>,
58 #[serde(rename = "autoplayDelayMS", skip_serializing_if = "Option::is_none")]
59 pub autoplay_delay_ms: Option<i64>,
60 #[serde(rename = "feedbackIds", skip_serializing_if = "Option::is_none")]
61 pub feedback_ids: Option<Vec<String>>,
62 #[serde(rename = "questionValues", skip_serializing_if = "Option::is_none")]
64 pub question_values: Option<std::collections::HashMap<String, models::RecordStringStringOrNumberValue>>,
65}
66
67impl CommentData {
68 pub fn new(commenter_name: String, comment: String, url: String, url_id: String) -> CommentData {
69 CommentData {
70 date: None,
71 local_date_string: None,
72 local_date_hours: None,
73 commenter_name,
74 commenter_email: None,
75 commenter_link: None,
76 comment,
77 product_id: None,
78 user_id: None,
79 avatar_src: None,
80 parent_id: None,
81 mentions: None,
82 hash_tags: None,
83 page_title: None,
84 is_from_my_account_page: None,
85 url,
86 url_id,
87 meta: None,
88 moderation_group_ids: None,
89 rating: None,
90 from_offline_restore: None,
91 autoplay_delay_ms: None,
92 feedback_ids: None,
93 question_values: None,
94 }
95 }
96}
97