use serde::{Deserialize, Serialize};
use crate::v2::model::changelog::structs::stream::UpdateStream;
use crate::v2::model::changelog::structs::versions::Versions;
#[cfg_attr(feature = "export", derive(tsify::Tsify))]
#[cfg_attr(feature = "export", tsify(into_wasm_abi, from_wasm_abi))]
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ChanglogBuild {
pub id: i64,
pub display_version: String,
pub users: i64,
pub created_at: String,
pub update_stream: UpdateStream,
pub version: Option<String>,
pub youtube_id: Option<String>,
pub changelog_entries: Option<Vec<ChangelogEntry>>,
pub versions: Option<Versions>,
}
#[cfg_attr(feature = "export", derive(tsify::Tsify))]
#[cfg_attr(feature = "export", tsify(into_wasm_abi, from_wasm_abi))]
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ChangelogEntry {
pub id: Option<i64>,
pub repository: Option<String>,
pub github_pull_request_id: Option<i64>,
pub github_url: Option<String>,
pub url: Option<String>,
#[serde(rename = "type")]
pub entry_type: String,
pub category: String,
pub title: Option<String>,
pub message: Option<String>,
pub message_html: Option<String>,
pub major: bool,
pub created_at: Option<String>,
pub github_user: Option<GithubUser>,
pub versions: Option<Versions>,
}
#[cfg_attr(feature = "export", derive(tsify::Tsify))]
#[cfg_attr(feature = "export", tsify(into_wasm_abi, from_wasm_abi))]
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct GithubUser {
pub display_name: String,
pub github_url: Option<String>,
pub github_username: Option<String>,
pub id: Option<i64>,
pub osu_username: Option<String>,
pub user_id: Option<i64>,
pub user_url: Option<String>,
}