robespierre_models/
bot.rs1use serde::{Deserialize, Serialize};
2
3use crate::{autumn::Attachment, id::UserId, users::Username};
4
5#[derive(Serialize, Deserialize, Debug, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)]
8#[serde(deny_unknown_fields)]
9pub struct Bot {
10 #[serde(rename = "_id")]
12 pub id: UserId,
13 pub owner: UserId,
15 pub token: String,
17 pub public: bool,
19
20 #[serde(default, skip_serializing_if = "Option::is_none")]
26 pub interactions_url: Option<String>,
27}
28
29#[derive(Serialize, Deserialize, Debug, Clone, Hash, Eq, PartialEq, Ord, PartialOrd)]
32#[serde(deny_unknown_fields)]
33pub struct PublicBot {
34 #[serde(rename = "_id")]
36 id: UserId,
37
38 username: Username,
40
41 #[serde(default, skip_serializing_if = "Option::is_none")]
43 avatar: Option<Attachment>,
44
45 #[serde(default, skip_serializing_if = "Option::is_none")]
47 description: Option<String>,
48}
49
50#[derive(Serialize, Deserialize, Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
54#[serde(deny_unknown_fields)]
55pub enum BotField {
56 InteractionsURL,
57}