use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Prop {
#[serde(rename = "_created_at")]
pub _created_at: String,
#[serde(rename = "_updated_at")]
pub _updated_at: String,
#[serde(rename = "authorId")]
pub author_id: String,
#[serde(rename = "authorName")]
pub author_name: String,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "imageUrl")]
pub image_url: String,
#[serde(rename = "maxCountPerUser")]
pub max_count_per_user: i32,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "releaseStatus")]
pub release_status: models::ReleaseStatus,
#[serde(rename = "spawnType")]
pub spawn_type: i32,
#[serde(rename = "tags")]
pub tags: Vec<String>,
#[serde(rename = "thumbnailImageUrl")]
pub thumbnail_image_url: String,
#[serde(rename = "unityPackageUrl", deserialize_with = "Option::deserialize")]
pub unity_package_url: Option<String>,
#[serde(rename = "unityPackages")]
pub unity_packages: Vec<models::PropUnityPackage>,
#[serde(rename = "worldPlacementMask")]
pub world_placement_mask: i32,
}
impl Prop {
pub fn new(
_created_at: String,
_updated_at: String,
author_id: String,
author_name: String,
description: String,
id: String,
image_url: String,
max_count_per_user: i32,
name: String,
release_status: models::ReleaseStatus,
spawn_type: i32,
tags: Vec<String>,
thumbnail_image_url: String,
unity_package_url: Option<String>,
unity_packages: Vec<models::PropUnityPackage>,
world_placement_mask: i32,
) -> Prop {
Prop {
_created_at,
_updated_at,
author_id,
author_name,
description,
id,
image_url,
max_count_per_user,
name,
release_status,
spawn_type,
tags,
thumbnail_image_url,
unity_package_url,
unity_packages,
world_placement_mask,
}
}
}