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
 */

/// InviteResponseOneOf : Server channel invite



#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct InviteResponseOneOf {
    #[serde(rename = "type")]
    pub r#type: RHashType,
    /// Invite code
    #[serde(rename = "code")]
    pub code: String,
    /// Id of the server
    #[serde(rename = "server_id")]
    pub server_id: String,
    /// Name of the server
    #[serde(rename = "server_name")]
    pub server_name: String,
    #[serde(rename = "server_icon", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub server_icon: Option<Option<Box<crate::models::InviteResponseOneOfServerIcon>>>,
    #[serde(rename = "server_banner", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub server_banner: Option<Option<Box<crate::models::InviteResponseOneOfServerBanner>>>,
    /// Enum of server flags
    #[serde(rename = "server_flags", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub server_flags: Option<Option<i32>>,
    /// Id of server channel
    #[serde(rename = "channel_id")]
    pub channel_id: String,
    /// Name of server channel
    #[serde(rename = "channel_name")]
    pub channel_name: String,
    /// Description of server channel
    #[serde(rename = "channel_description", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub channel_description: Option<Option<String>>,
    /// Name of user who created the invite
    #[serde(rename = "user_name")]
    pub user_name: String,
    #[serde(rename = "user_avatar", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub user_avatar: Option<Option<Box<crate::models::InviteResponseOneOfUserAvatar>>>,
    /// Number of members in this server
    #[serde(rename = "member_count")]
    pub member_count: i64,
}

impl InviteResponseOneOf {
    /// Server channel invite
    pub fn new(r#type: RHashType, code: String, server_id: String, server_name: String, channel_id: String, channel_name: String, user_name: String, member_count: i64) -> InviteResponseOneOf {
        InviteResponseOneOf {
            r#type,
            code,
            server_id,
            server_name,
            server_icon: None,
            server_banner: None,
            server_flags: None,
            channel_id,
            channel_name,
            channel_description: None,
            user_name,
            user_avatar: None,
            member_count,
        }
    }
}

/// 
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RHashType {
    #[serde(rename = "Server")]
    Server,
}

impl Default for RHashType {
    fn default() -> RHashType {
        Self::Server
    }
}