use serde::{Deserialize, Serialize};
#[cfg(feature = "ws")]
use super::{RequestType, Requestable};
#[cfg(feature = "ws")]
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Invite {
pub id: crate::id::User,
}
#[cfg(feature = "ws")]
impl Requestable for Invite {
fn request_type(&self) -> RequestType { RequestType::InviteSend }
}
#[cfg(feature = "ws")]
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct InviteRequest {
pub id: crate::id::User,
}
#[cfg(feature = "ws")]
impl Requestable for InviteRequest {
fn request_type(&self) -> RequestType { RequestType::RequestInvite }
}
#[cfg(feature = "ws")]
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct AcceptInviteRequest {
pub id: crate::id::Invite,
}
#[cfg(feature = "ws")]
impl Requestable for AcceptInviteRequest {
fn request_type(&self) -> RequestType { RequestType::RequestInviteAccept }
}
#[cfg(feature = "ws")]
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeclineInviteRequest {
pub id: crate::id::Invite,
}
#[cfg(feature = "ws")]
impl Requestable for DeclineInviteRequest {
fn request_type(&self) -> RequestType { RequestType::RequestInviteDecline }
}
#[cfg(feature = "ws")]
#[derive(Debug, Clone, PartialEq, Eq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ExpireInvite {
pub id: crate::id::Invite,
}
#[cfg(feature = "ws")]
impl Requestable for ExpireInvite {
fn request_type(&self) -> RequestType { RequestType::InviteExpire }
}