Skip to main content

azisaba_graph/models/
create_punishment_request.rs

1/*
2 * Azisaba Graph API
3 *
4 * An API for connecting and sharing data across the Azisaba Network.
5 *
6 * The version of the OpenAPI document: 0.0.1
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreatePunishmentRequest {
16    /// The target's name at the time the punishment was issued.
17    #[serde(rename = "targetName")]
18    pub target_name: String,
19    /// The target's UUID, or IP address for an IP-based punishment.
20    #[serde(rename = "target")]
21    pub target: String,
22    /// The type of punishment.
23    #[serde(rename = "type")]
24    pub r#type: Type,
25    /// The reason for the punishment.
26    #[serde(rename = "reason")]
27    pub reason: String,
28    /// The date and time at which the punishment expires, or `null` if it does not expire.
29    #[serde(rename = "expiresAt", deserialize_with = "Option::deserialize")]
30    pub expires_at: Option<chrono::DateTime<chrono::FixedOffset>>,
31    /// The server on which the punishment was issued.
32    #[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/// The type of punishment.
49#[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