guilded_model/channel/
mod.rs

1//! The channel object.
2
3use serde::{Deserialize, Serialize};
4
5use crate::datetime::Timestamp;
6use crate::id::{
7    marker::{CategoryMarker, ChannelMarker, GroupMarker, ServerMarker, UserMarker},
8    Id,
9};
10
11pub mod mentions;
12
13#[derive(Clone, Debug, Deserialize, Serialize)]
14#[serde(rename_all = "camelCase")]
15pub struct ServerChannel {
16    pub archived_at: Option<Timestamp>,
17    pub archived_by: Option<Id<UserMarker>>,
18    pub category_id: Option<Id<CategoryMarker>>,
19    pub created_at: Timestamp,
20    pub created_by: Id<UserMarker>,
21    pub group_id: Id<GroupMarker>,
22    pub id: Id<ChannelMarker>,
23    pub is_public: Option<bool>,
24    pub name: String,
25    pub parent_id: Option<Id<ChannelMarker>>,
26    pub server_id: Id<ServerMarker>,
27    pub topic: Option<String>,
28    pub r#type: ServerChannelType,
29    pub updated_at: Option<Timestamp>,
30}
31
32#[derive(Clone, Debug, Deserialize, Serialize)]
33pub enum ServerChannelType {
34    Announcements,
35    Calendar,
36    Chat,
37    Docs,
38    Forums,
39    List,
40    Media,
41    Scheduling,
42    Stream,
43    Voice,
44}