use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ReleaseResponse {
#[serde(rename = "_id")]
pub _id: String,
#[serde(rename = "archived")]
pub archived: bool,
#[serde(rename = "build_id", skip_serializing_if = "Option::is_none")]
pub build_id: Option<String>,
#[serde(rename = "date")]
pub date: f64,
#[serde(rename = "device_id")]
pub device_id: String,
#[serde(rename = "featured_text", skip_serializing_if = "Option::is_none")]
pub featured_text: Option<String>,
#[serde(rename = "filename")]
pub filename: String,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "is_featured")]
pub is_featured: bool,
#[serde(rename = "maintainer_id", skip_serializing_if = "Option::is_none")]
pub maintainer_id: Option<String>,
#[serde(rename = "md5")]
pub md5: String,
#[serde(rename = "size")]
pub size: i64,
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "variant")]
pub variant: String,
#[serde(rename = "version")]
pub version: String,
#[serde(rename = "bugs", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub bugs: Option<Option<Vec<String>>>,
#[serde(rename = "changelog")]
pub changelog: Vec<String>,
#[serde(rename = "mirrors")]
pub mirrors: std::collections::HashMap<String, String>,
#[serde(rename = "notes", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub notes: Option<Option<String>>,
#[serde(rename = "recovery_img")]
pub recovery_img: Box<models::RecoveryImgResponse>,
#[serde(rename = "total_downloads")]
pub total_downloads: i64,
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "weekly_downloads")]
pub weekly_downloads: i64,
}
impl ReleaseResponse {
pub fn new(_id: String, archived: bool, date: f64, device_id: String, filename: String, id: String, is_featured: bool, md5: String, size: i64, r#type: String, variant: String, version: String, changelog: Vec<String>, mirrors: std::collections::HashMap<String, String>, recovery_img: models::RecoveryImgResponse, total_downloads: i64, url: String, weekly_downloads: i64) -> ReleaseResponse {
ReleaseResponse {
_id,
archived,
build_id: None,
date,
device_id,
featured_text: None,
filename,
id,
is_featured,
maintainer_id: None,
md5,
size,
r#type,
variant,
version,
bugs: None,
changelog,
mirrors,
notes: None,
recovery_img: Box::new(recovery_img),
total_downloads,
url,
weekly_downloads,
}
}
}