use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Avatar {
#[serde(rename = "acknowledgements", skip_serializing_if = "Option::is_none")]
pub acknowledgements: Option<String>,
#[serde(
rename = "activeAssetReviewId",
skip_serializing_if = "Option::is_none"
)]
pub active_asset_review_id: Option<String>,
#[serde(rename = "assetUrl", skip_serializing_if = "Option::is_none")]
pub asset_url: Option<String>,
#[serde(rename = "assetUrlObject", skip_serializing_if = "Option::is_none")]
pub asset_url_object: Option<serde_json::Value>,
#[serde(rename = "authorId")]
pub author_id: String,
#[serde(rename = "authorName")]
pub author_name: String,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "featured")]
pub featured: bool,
#[serde(rename = "highestPrice", skip_serializing_if = "Option::is_none")]
pub highest_price: Option<i32>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "imageUrl")]
pub image_url: String,
#[serde(rename = "listingDate", deserialize_with = "Option::deserialize")]
pub listing_date: Option<String>,
#[serde(rename = "lock", skip_serializing_if = "Option::is_none")]
pub lock: Option<bool>,
#[serde(rename = "lowestPrice", skip_serializing_if = "Option::is_none")]
pub lowest_price: Option<i32>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "pendingUpload", skip_serializing_if = "Option::is_none")]
pub pending_upload: Option<bool>,
#[serde(rename = "performance")]
pub performance: models::AvatarPerformance,
#[serde(rename = "productId", skip_serializing_if = "Option::is_none")]
pub product_id: Option<String>,
#[serde(rename = "publishedListings", skip_serializing_if = "Option::is_none")]
pub published_listings: Option<Vec<models::AvatarPublishedListingsInner>>,
#[serde(rename = "releaseStatus")]
pub release_status: models::ReleaseStatus,
#[serde(rename = "searchable", skip_serializing_if = "Option::is_none")]
pub searchable: Option<bool>,
#[serde(rename = "styles")]
pub styles: models::AvatarStyles,
#[serde(rename = "tags")]
pub tags: Vec<String>,
#[serde(rename = "thumbnailImageUrl")]
pub thumbnail_image_url: String,
#[serde(rename = "unityPackageUrl")]
pub unity_package_url: String,
#[serde(rename = "unityPackageUrlObject")]
pub unity_package_url_object: models::AvatarUnityPackageUrlObject,
#[serde(rename = "unityPackages")]
pub unity_packages: Vec<models::UnityPackage>,
#[serde(rename = "updated_at")]
pub updated_at: String,
#[serde(rename = "version")]
pub version: i32,
}
impl Avatar {
pub fn new(
author_id: String,
author_name: String,
created_at: String,
description: String,
featured: bool,
id: String,
image_url: String,
listing_date: Option<String>,
name: String,
performance: models::AvatarPerformance,
release_status: models::ReleaseStatus,
styles: models::AvatarStyles,
tags: Vec<String>,
thumbnail_image_url: String,
unity_package_url: String,
unity_package_url_object: models::AvatarUnityPackageUrlObject,
unity_packages: Vec<models::UnityPackage>,
updated_at: String,
version: i32,
) -> Avatar {
Avatar {
acknowledgements: None,
active_asset_review_id: None,
asset_url: None,
asset_url_object: None,
author_id,
author_name,
created_at,
description,
featured,
highest_price: None,
id,
image_url,
listing_date,
lock: None,
lowest_price: None,
name,
pending_upload: None,
performance,
product_id: None,
published_listings: None,
release_status,
searchable: None,
styles,
tags,
thumbnail_image_url,
unity_package_url,
unity_package_url_object,
unity_packages,
updated_at,
version,
}
}
}