gitbundle_sdk/models/
feed_model.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct FeedModel {
17 #[serde(rename = "created")]
18 pub created: i64,
19 #[serde(rename = "created_by")]
20 pub created_by: i64,
21 #[serde(
22 rename = "date_contribution",
23 default,
24 with = "::serde_with::rust::double_option",
25 skip_serializing_if = "Option::is_none"
26 )]
27 pub date_contribution: Option<Option<i64>>,
28 #[serde(rename = "feed_type")]
29 pub feed_type: models::FeedType,
30 #[serde(rename = "id")]
31 pub id: i64,
32 #[serde(rename = "is_private")]
33 pub is_private: bool,
34 #[serde(
35 rename = "num_contributions",
36 default,
37 with = "::serde_with::rust::double_option",
38 skip_serializing_if = "Option::is_none"
39 )]
40 pub num_contributions: Option<Option<i64>>,
41 #[serde(rename = "payload", deserialize_with = "Option::deserialize")]
42 pub payload: Option<serde_json::Value>,
43 #[serde(
44 rename = "pullreq_activity_id",
45 default,
46 with = "::serde_with::rust::double_option",
47 skip_serializing_if = "Option::is_none"
48 )]
49 pub pullreq_activity_id: Option<Option<i64>>,
50 #[serde(
51 rename = "pullreq_id",
52 default,
53 with = "::serde_with::rust::double_option",
54 skip_serializing_if = "Option::is_none"
55 )]
56 pub pullreq_id: Option<Option<i64>>,
57 #[serde(
58 rename = "pullreq_review_id",
59 default,
60 with = "::serde_with::rust::double_option",
61 skip_serializing_if = "Option::is_none"
62 )]
63 pub pullreq_review_id: Option<Option<i64>>,
64 #[serde(
65 rename = "release_id",
66 default,
67 with = "::serde_with::rust::double_option",
68 skip_serializing_if = "Option::is_none"
69 )]
70 pub release_id: Option<Option<i64>>,
71 #[serde(rename = "repo_id")]
72 pub repo_id: i64,
73 #[serde(rename = "updated")]
74 pub updated: i64,
75}
76
77impl FeedModel {
78 pub fn new(
79 created: i64,
80 created_by: i64,
81 feed_type: models::FeedType,
82 id: i64,
83 is_private: bool,
84 payload: Option<serde_json::Value>,
85 repo_id: i64,
86 updated: i64,
87 ) -> FeedModel {
88 FeedModel {
89 created,
90 created_by,
91 date_contribution: None,
92 feed_type,
93 id,
94 is_private,
95 num_contributions: None,
96 payload,
97 pullreq_activity_id: None,
98 pullreq_id: None,
99 pullreq_review_id: None,
100 release_id: None,
101 repo_id,
102 updated,
103 }
104 }
105}