/*
* VRChat API Documentation
*
*
* Contact: vrchatapi.lpv0t@aries.fyi
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// SubmitModerationReportRequest : Pseudocode steps to build a request with a valid combination: request = {} config = json.parse(GET /config) valid_types = config.reportOptions.keys request.type = select_one(valid_types, (id) => { text: id, tooltip: \"\" }) valid_categories = config.reportOptions[request.type].keys request.category = select_one(valid_categories, (id) => config.reportCategories[id]) valid_reasons = config.reportOptions[request.type][request.category] request.reason = select_one(valid_reasons, (id) => config.reportReasons[id]) request.contentId = relevant_id_of_type(request.type) request.details = relevant_details_based_on_type(request.type) request.description = input_string()
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SubmitModerationReportRequest {
/// Valid values are the keys of the object `$.reportOptions[type]` from `GET /config`. Descriptions of these are found at `$.reportCategories[type]`.
#[serde(rename = "category")]
pub category: String,
/// The id of the user, group, world, avatar, inventory item, print, etc. being reported.
#[serde(rename = "contentId")]
pub content_id: String,
/// The subjective reason for the report
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "details", skip_serializing_if = "Option::is_none")]
pub details: Option<models::SubmitModerationReportRequestDetails>,
/// Valid values are the strings in the array `$.reportOptions[type][category]` from `GET /config`. Descriptions of these are found at `$.reportReasons[type]`.
#[serde(rename = "reason")]
pub reason: String,
/// Valid values are the keys of the object `$.reportOptions` from `GET /config`.
#[serde(rename = "type")]
pub r#type: String,
}
impl SubmitModerationReportRequest {
/// Pseudocode steps to build a request with a valid combination: request = {} config = json.parse(GET /config) valid_types = config.reportOptions.keys request.type = select_one(valid_types, (id) => { text: id, tooltip: \"\" }) valid_categories = config.reportOptions[request.type].keys request.category = select_one(valid_categories, (id) => config.reportCategories[id]) valid_reasons = config.reportOptions[request.type][request.category] request.reason = select_one(valid_reasons, (id) => config.reportReasons[id]) request.contentId = relevant_id_of_type(request.type) request.details = relevant_details_based_on_type(request.type) request.description = input_string()
pub fn new(
category: String,
content_id: String,
reason: String,
r#type: String,
) -> SubmitModerationReportRequest {
SubmitModerationReportRequest {
category,
content_id,
description: None,
details: None,
reason,
r#type,
}
}
}