revolt_api 0.6.5

Open source user-first chat platform.
Documentation
/*
 * Revolt API
 *
 * Open source user-first chat platform.
 *
 * The version of the OpenAPI document: 0.6.5
 * Contact: contact@revolt.chat
 * Generated by: https://openapi-generator.tech
 */

/// Member : Representation of a member of a server on Revolt



#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct Member {
    #[serde(rename = "_id")]
    pub _id: Box<crate::models::MemberId>,
    /// ISO8601 formatted timestamp
    #[serde(rename = "joined_at")]
    pub joined_at: String,
    /// Member's nickname
    #[serde(rename = "nickname", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub nickname: Option<Option<String>>,
    #[serde(rename = "avatar", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub avatar: Option<Option<Box<crate::models::UserAvatar>>>,
    /// Member's roles
    #[serde(rename = "roles", skip_serializing_if = "Option::is_none")]
    pub roles: Option<Vec<String>>,
    /// ISO8601 formatted timestamp
    #[serde(rename = "timeout", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub timeout: Option<Option<String>>,
}

impl Member {
    /// Representation of a member of a server on Revolt
    pub fn new(_id: crate::models::MemberId, joined_at: String) -> Member {
        Member {
            _id: Box::new(_id),
            joined_at,
            nickname: None,
            avatar: None,
            roles: None,
            timeout: None,
        }
    }
}