use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[serde(default)]
pub struct UserReportCreateOperationPayloadDataAttributes {
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "reason")]
pub reason: Reason,
}
impl UserReportCreateOperationPayloadDataAttributes {
pub fn new(description: String, reason: Reason) -> UserReportCreateOperationPayloadDataAttributes {
UserReportCreateOperationPayloadDataAttributes {
description,
reason,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Reason {
#[serde(rename = "SEXUAL_CONTENT_OR_NUDITY")]
SexualContentOrNudity,
#[serde(rename = "VIOLENT_OR_DANGEROUS_CONTENT")]
ViolentOrDangerousContent,
#[serde(rename = "HATEFUL_OR_ABUSIVE_CONTENT")]
HatefulOrAbusiveContent,
#[serde(rename = "HARASSMENT")]
Harassment,
#[serde(rename = "PRIVACY_VIOLATION")]
PrivacyViolation,
#[serde(rename = "SCAMS_OR_FRAUD")]
ScamsOrFraud,
#[serde(rename = "SPAM")]
Spam,
#[serde(rename = "COPYRIGHT_INFRINGEMENT")]
CopyrightInfringement,
#[serde(rename = "APPEAL")]
Appeal,
#[serde(rename = "UNKNOWN")]
Unknown,
}
impl Default for Reason {
fn default() -> Reason {
Self::SexualContentOrNudity
}
}