revolt_models/v0/
server_bans.rs1use super::{File, MemberCompositeKey, User};
2
3#[cfg(feature = "validator")]
4use validator::Validate;
5
6auto_derived!(
7 pub struct ServerBan {
9 #[cfg_attr(feature = "serde", serde(rename = "_id"))]
11 pub id: MemberCompositeKey,
12 pub reason: Option<String>,
14 }
15
16 #[cfg_attr(feature = "validator", derive(Validate))]
18 pub struct DataBanCreate {
19 #[cfg_attr(feature = "validator", validate(length(min = 0, max = 1024)))]
21 pub reason: Option<String>,
22 #[cfg_attr(feature = "validator", validate(range(min = 0, max = 604800)))]
24 pub delete_message_seconds: Option<i64>,
25 }
26
27 pub struct BannedUser {
29 #[cfg_attr(feature = "serde", serde(rename = "_id"))]
31 pub id: String,
32 pub username: String,
34 pub discriminator: String,
36 pub avatar: Option<File>,
38 }
39
40 pub struct BanListResult {
42 pub users: Vec<BannedUser>,
44 pub bans: Vec<ServerBan>,
46 }
47);
48
49impl From<User> for BannedUser {
50 fn from(user: User) -> Self {
51 BannedUser {
52 id: user.id,
53 username: user.username,
54 discriminator: user.discriminator,
55 avatar: user.avatar,
56 }
57 }
58}