use super::*;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct Issue {
pub id: IssueId,
pub node_id: String,
pub url: Url,
pub repository_url: Url,
pub labels_url: Url,
pub comments_url: Url,
pub events_url: Url,
pub html_url: Url,
pub number: i64,
pub state: String,
pub title: String,
pub body: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub body_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub body_html: Option<String>,
pub user: User,
pub labels: Vec<Label>,
#[serde(skip_serializing_if = "Option::is_none")]
pub assignee: Option<User>,
pub assignees: Vec<User>,
pub author_association: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub milestone: Option<Milestone>,
pub locked: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub active_lock_reason: Option<String>,
pub comments: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub pull_request: Option<PullRequestLink>,
#[serde(skip_serializing_if = "Option::is_none")]
pub closed_at: Option<chrono::DateTime<chrono::Utc>>,
pub created_at: chrono::DateTime<chrono::Utc>,
pub updated_at: chrono::DateTime<chrono::Utc>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct Comment {
pub id: CommentId,
pub node_id: String,
pub url: Url,
pub html_url: Url,
#[serde(skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub body_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub body_html: Option<String>,
pub user: User,
pub created_at: chrono::DateTime<chrono::Utc>,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[non_exhaustive]
pub struct PullRequestLink {
pub url: Url,
pub html_url: Url,
pub diff_url: Url,
pub patch_url: Url,
}