guilded_model/channel/
mod.rs1use 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}