use serde::{Deserialize, Serialize};
use super::RecordId;
#[cfg_attr(
feature = "borsh",
derive(borsh::BorshSerialize, borsh::BorshDeserialize)
)]
#[serde_with::serde_as]
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UserProfile {
#[serde_as(deserialize_as = "serde_with::DefaultOnNull")]
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde_as(deserialize_as = "serde_with::DefaultOnNull")]
#[serde(default)]
pub display_badges: Vec<RecordId>,
#[serde_as(deserialize_as = "serde_with::DefaultOnNull")]
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub icon_url: Option<crate::AssetUrl>,
#[serde_as(deserialize_as = "serde_with::DefaultOnNull")]
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub tagline: Option<String>,
}