use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct World {
#[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 = "description")]
pub description: String,
#[serde(rename = "favorites", skip_serializing_if = "Option::is_none")]
pub favorites: Option<i32>,
#[serde(rename = "featured")]
pub featured: bool,
#[serde(rename = "heat")]
pub heat: i32,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "imageUrl")]
pub image_url: String,
#[serde(rename = "instances", skip_serializing_if = "Option::is_none")]
pub instances: Option<Vec<Vec<serde_json::Value>>>,
#[serde(rename = "labsPublicationDate")]
pub labs_publication_date: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "namespace", skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(rename = "occupants", skip_serializing_if = "Option::is_none")]
pub occupants: Option<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 = "privateOccupants", skip_serializing_if = "Option::is_none")]
pub private_occupants: Option<i32>,
#[serde(rename = "publicOccupants", skip_serializing_if = "Option::is_none")]
pub public_occupants: Option<i32>,
#[serde(rename = "publicationDate")]
pub publication_date: String,
#[serde(rename = "recommendedCapacity")]
pub recommended_capacity: 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", skip_serializing_if = "Option::is_none")]
pub unity_packages: Option<Vec<models::UnityPackage>>,
#[serde(rename = "updated_at")]
pub updated_at: String,
#[serde(rename = "urlList", skip_serializing_if = "Option::is_none")]
pub url_list: Option<Vec<String>>,
#[serde(rename = "version")]
pub version: i32,
#[serde(rename = "visits")]
pub visits: i32,
}
impl World {
pub fn new(
author_id: String,
author_name: String,
capacity: i32,
created_at: String,
description: String,
featured: bool,
heat: i32,
id: String,
image_url: String,
labs_publication_date: String,
name: String,
organization: String,
popularity: i32,
publication_date: String,
recommended_capacity: i32,
release_status: models::ReleaseStatus,
tags: Vec<String>,
thumbnail_image_url: String,
updated_at: String,
version: i32,
visits: i32,
) -> World {
World {
author_id,
author_name,
capacity,
created_at,
default_content_settings: None,
description,
favorites: None,
featured,
heat,
id,
image_url,
instances: None,
labs_publication_date,
name,
namespace: None,
occupants: None,
organization,
popularity,
preview_youtube_id: None,
private_occupants: None,
public_occupants: None,
publication_date,
recommended_capacity,
release_status,
store_id: None,
tags,
thumbnail_image_url,
udon_products: None,
unity_packages: None,
updated_at,
url_list: None,
version,
visits,
}
}
}