azisaba_graph/models/
create_punishment_request.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreatePunishmentRequest {
16 #[serde(rename = "targetName")]
18 pub target_name: String,
19 #[serde(rename = "target")]
21 pub target: String,
22 #[serde(rename = "type")]
24 pub r#type: Type,
25 #[serde(rename = "reason")]
27 pub reason: String,
28 #[serde(rename = "expiresAt", deserialize_with = "Option::deserialize")]
30 pub expires_at: Option<chrono::DateTime<chrono::FixedOffset>>,
31 #[serde(rename = "server")]
33 pub server: String,
34}
35
36impl CreatePunishmentRequest {
37 pub fn new(target_name: String, target: String, r#type: Type, reason: String, expires_at: Option<chrono::DateTime<chrono::FixedOffset>>, server: String) -> CreatePunishmentRequest {
38 CreatePunishmentRequest {
39 target_name,
40 target,
41 r#type,
42 reason,
43 expires_at,
44 server,
45 }
46 }
47}
48#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
50pub enum Type {
51 #[serde(rename = "ban")]
52 Ban,
53 #[serde(rename = "tempBan")]
54 TempBan,
55 #[serde(rename = "ipBan")]
56 IpBan,
57 #[serde(rename = "tempIpBan")]
58 TempIpBan,
59 #[serde(rename = "mute")]
60 Mute,
61 #[serde(rename = "tempMute")]
62 TempMute,
63 #[serde(rename = "ipMute")]
64 IpMute,
65 #[serde(rename = "tempIpMute")]
66 TempIpMute,
67 #[serde(rename = "warning")]
68 Warning,
69 #[serde(rename = "caution")]
70 Caution,
71 #[serde(rename = "kick")]
72 Kick,
73 #[serde(rename = "note")]
74 Note,
75}
76
77impl Default for Type {
78 fn default() -> Type {
79 Self::Ban
80 }
81}
82