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