use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct LimitedWorld {
#[serde(rename = "authorId")]
pub author_id: String,
#[serde(rename = "authorName")]
pub author_name: String,
#[serde(rename = "capacity")]
pub capacity: i32,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(
rename = "defaultContentSettings",
skip_serializing_if = "Option::is_none"
)]
pub default_content_settings: Option<models::InstanceContentSettings>,
#[serde(rename = "favorites")]
pub favorites: i32,
#[serde(rename = "heat")]
pub heat: i32,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "imageUrl")]
pub image_url: String,
#[serde(rename = "labsPublicationDate")]
pub labs_publication_date: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "occupants")]
pub occupants: i32,
#[serde(rename = "organization")]
pub organization: String,
#[serde(rename = "popularity")]
pub popularity: i32,
#[serde(
rename = "previewYoutubeId",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub preview_youtube_id: Option<Option<String>>,
#[serde(rename = "publicationDate")]
pub publication_date: String,
#[serde(
rename = "recommendedCapacity",
skip_serializing_if = "Option::is_none"
)]
pub recommended_capacity: Option<i32>,
#[serde(rename = "releaseStatus")]
pub release_status: models::ReleaseStatus,
#[serde(rename = "storeId", skip_serializing_if = "Option::is_none")]
pub store_id: Option<String>,
#[serde(rename = "tags")]
pub tags: Vec<String>,
#[serde(rename = "thumbnailImageUrl")]
pub thumbnail_image_url: String,
#[serde(rename = "udonProducts", skip_serializing_if = "Option::is_none")]
pub udon_products: Option<Vec<String>>,
#[serde(rename = "unityPackages")]
pub unity_packages: Vec<models::LimitedUnityPackage>,
#[serde(rename = "updated_at")]
pub updated_at: String,
#[serde(rename = "visits", skip_serializing_if = "Option::is_none")]
pub visits: Option<i32>,
}
impl LimitedWorld {
pub fn new(
author_id: String,
author_name: String,
capacity: i32,
created_at: String,
favorites: i32,
heat: i32,
id: String,
image_url: String,
labs_publication_date: String,
name: String,
occupants: i32,
organization: String,
popularity: i32,
publication_date: String,
release_status: models::ReleaseStatus,
tags: Vec<String>,
thumbnail_image_url: String,
unity_packages: Vec<models::LimitedUnityPackage>,
updated_at: String,
) -> LimitedWorld {
LimitedWorld {
author_id,
author_name,
capacity,
created_at,
default_content_settings: None,
favorites,
heat,
id,
image_url,
labs_publication_date,
name,
occupants,
organization,
popularity,
preview_youtube_id: None,
publication_date,
recommended_capacity: None,
release_status,
store_id: None,
tags,
thumbnail_image_url,
udon_products: None,
unity_packages,
updated_at,
visits: None,
}
}
}