#[cfg_attr(
feature = "borsh",
derive(borsh::BorshSerialize, borsh::BorshDeserialize)
)]
#[serde_with::serde_as]
#[derive(
Debug, Clone, PartialEq, Eq, Hash, serde::Deserialize, serde::Serialize,
)]
#[serde(rename_all = "camelCase")]
pub struct SessionUser {
#[serde_as(deserialize_as = "serde_with::DefaultOnNull")]
#[serde(rename = "userID")]
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub id: Option<crate::id::User>,
pub is_present: bool,
#[serde_as(deserialize_as = "serde_with::DefaultOnNull")]
#[serde(default)]
pub output_device: crate::model::OutputDevice,
#[serde_as(deserialize_as = "serde_with::DefaultOnNull")]
#[serde(rename = "userSessionId")]
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub session_id: Option<crate::id::UserSession>,
pub username: String,
}