use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ListPunishments200ResponseItemsInner {
#[serde(rename = "id")]
pub id: u64,
#[serde(rename = "targetName")]
pub target_name: String,
#[serde(rename = "target")]
pub target: String,
#[serde(rename = "type")]
pub r#type: Type,
#[serde(rename = "reason")]
pub reason: String,
#[serde(rename = "actorId")]
pub actor_id: uuid::Uuid,
#[serde(rename = "createdAt")]
pub created_at: chrono::DateTime<chrono::FixedOffset>,
#[serde(rename = "expiresAt", deserialize_with = "Option::deserialize")]
pub expires_at: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "server")]
pub server: String,
#[serde(rename = "seen")]
pub seen: bool,
#[serde(rename = "active")]
pub active: bool,
#[serde(rename = "proofs")]
pub proofs: Vec<models::ListPunishments200ResponseItemsInnerProofsInner>,
#[serde(rename = "revocation", deserialize_with = "Option::deserialize")]
pub revocation: Option<Box<models::ListPunishments200ResponseItemsInnerRevocation>>,
}
impl ListPunishments200ResponseItemsInner {
pub fn new(id: u64, target_name: String, target: String, r#type: Type, reason: String, actor_id: uuid::Uuid, created_at: chrono::DateTime<chrono::FixedOffset>, expires_at: Option<chrono::DateTime<chrono::FixedOffset>>, server: String, seen: bool, active: bool, proofs: Vec<models::ListPunishments200ResponseItemsInnerProofsInner>, revocation: Option<models::ListPunishments200ResponseItemsInnerRevocation>) -> ListPunishments200ResponseItemsInner {
ListPunishments200ResponseItemsInner {
id,
target_name,
target,
r#type,
reason,
actor_id,
created_at,
expires_at,
server,
seen,
active,
proofs,
revocation: if let Some(x) = revocation {Some(Box::new(x))} else {None},
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "ban")]
Ban,
#[serde(rename = "tempBan")]
TempBan,
#[serde(rename = "ipBan")]
IpBan,
#[serde(rename = "tempIpBan")]
TempIpBan,
#[serde(rename = "mute")]
Mute,
#[serde(rename = "tempMute")]
TempMute,
#[serde(rename = "ipMute")]
IpMute,
#[serde(rename = "tempIpMute")]
TempIpMute,
#[serde(rename = "warning")]
Warning,
#[serde(rename = "caution")]
Caution,
#[serde(rename = "kick")]
Kick,
#[serde(rename = "note")]
Note,
}
impl Default for Type {
fn default() -> Type {
Self::Ban
}
}