use {serde::Deserialize, serde_json::Value as Json};
use crate::{
models::{Id, Server},
Context, Result,
};
#[derive(Debug, Deserialize, Clone, Copy, PartialEq)]
pub enum RoleField {
#[serde(rename = "Colour")]
Color,
}
#[derive(Debug, Deserialize, Clone, PartialEq)]
pub struct ServerRoleUpdateEvent {
#[serde(rename = "id")]
pub server_id: Id,
pub role_id: Id,
pub data: Json,
pub clear: Option<RoleField>,
}
impl ServerRoleUpdateEvent {
pub async fn server(&self, cx: &Context) -> Result<Server> {
Server::fetch(cx, &self.server_id).await
}
}