1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct IssueEvent {
17 #[serde(rename = "id")]
18 pub id: i64,
19 #[serde(rename = "node_id")]
20 pub node_id: String,
21 #[serde(rename = "url")]
22 pub url: String,
23 #[serde(rename = "actor", deserialize_with = "Option::deserialize")]
24 pub actor: Option<Box<models::NullableSimpleUser>>,
25 #[serde(rename = "event")]
26 pub event: String,
27 #[serde(rename = "commit_id", deserialize_with = "Option::deserialize")]
28 pub commit_id: Option<String>,
29 #[serde(rename = "commit_url", deserialize_with = "Option::deserialize")]
30 pub commit_url: Option<String>,
31 #[serde(rename = "created_at")]
32 pub created_at: String,
33 #[serde(rename = "issue", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
34 pub issue: Option<Option<Box<models::NullableIssue>>>,
35 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
36 pub label: Option<Box<models::IssueEventLabel>>,
37 #[serde(rename = "assignee", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
38 pub assignee: Option<Option<Box<models::NullableSimpleUser>>>,
39 #[serde(rename = "assigner", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
40 pub assigner: Option<Option<Box<models::NullableSimpleUser>>>,
41 #[serde(rename = "review_requester", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
42 pub review_requester: Option<Option<Box<models::NullableSimpleUser>>>,
43 #[serde(rename = "requested_reviewer", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
44 pub requested_reviewer: Option<Option<Box<models::NullableSimpleUser>>>,
45 #[serde(rename = "requested_team", skip_serializing_if = "Option::is_none")]
46 pub requested_team: Option<Box<models::Team>>,
47 #[serde(rename = "dismissed_review", skip_serializing_if = "Option::is_none")]
48 pub dismissed_review: Option<Box<models::IssueEventDismissedReview>>,
49 #[serde(rename = "milestone", skip_serializing_if = "Option::is_none")]
50 pub milestone: Option<Box<models::IssueEventMilestone>>,
51 #[serde(rename = "project_card", skip_serializing_if = "Option::is_none")]
52 pub project_card: Option<Box<models::IssueEventProjectCard>>,
53 #[serde(rename = "rename", skip_serializing_if = "Option::is_none")]
54 pub rename: Option<Box<models::IssueEventRename>>,
55 #[serde(rename = "author_association", skip_serializing_if = "Option::is_none")]
56 pub author_association: Option<models::AuthorAssociation>,
57 #[serde(rename = "lock_reason", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
58 pub lock_reason: Option<Option<String>>,
59 #[serde(rename = "performed_via_github_app", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
60 pub performed_via_github_app: Option<Option<Box<models::NullableIntegration>>>,
61}
62
63impl IssueEvent {
64 pub fn new(id: i64, node_id: String, url: String, actor: Option<models::NullableSimpleUser>, event: String, commit_id: Option<String>, commit_url: Option<String>, created_at: String) -> IssueEvent {
66 IssueEvent {
67 id,
68 node_id,
69 url,
70 actor: actor.map(Box::new),
71 event,
72 commit_id,
73 commit_url,
74 created_at,
75 issue: None,
76 label: None,
77 assignee: None,
78 assigner: None,
79 review_requester: None,
80 requested_reviewer: None,
81 requested_team: None,
82 dismissed_review: None,
83 milestone: None,
84 project_card: None,
85 rename: None,
86 author_association: None,
87 lock_reason: None,
88 performed_via_github_app: None,
89 }
90 }
91}
92