#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct ProjectDetail {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "type_str")]
pub type_str: String,
#[serde(rename = "score_type")]
pub score_type: crate::models::ScoreTypeEnum,
#[serde(rename = "subtitle")]
pub subtitle: String,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "site_id")]
pub site_id: i32,
#[serde(rename = "user_perms", deserialize_with = "Option::deserialize")]
pub user_perms: Option<serde_json::Value>,
#[serde(
rename = "question_user_perms",
deserialize_with = "Option::deserialize"
)]
pub question_user_perms: Option<serde_json::Value>,
#[serde(rename = "sign_up_fields")]
pub sign_up_fields: ::std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "tournament_close_date")]
pub tournament_close_date: String,
#[serde(rename = "tournament_start_date")]
pub tournament_start_date: String,
#[serde(rename = "prize_pool")]
pub prize_pool: f64,
#[serde(rename = "config")]
pub config: ::std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "in_main_feed_by_default")]
pub in_main_feed_by_default: bool,
#[serde(rename = "public")]
pub public: bool,
#[serde(rename = "is_opt_in")]
pub is_opt_in: bool,
#[serde(rename = "user_permissions", deserialize_with = "Option::deserialize")]
pub user_permissions: Option<serde_json::Value>,
#[serde(rename = "essay_count")]
pub essay_count: i32,
#[serde(rename = "completion_question_count")]
pub completion_question_count: i32,
#[serde(rename = "organizations")]
pub organizations: Vec<crate::models::Organization>,
#[serde(rename = "header_logo")]
pub header_logo: String,
#[serde(rename = "header_image")]
pub header_image: String,
#[serde(
rename = "default_project_permissions",
deserialize_with = "Option::deserialize"
)]
pub default_project_permissions: Option<serde_json::Value>,
#[serde(
rename = "default_question_permissions",
deserialize_with = "Option::deserialize"
)]
pub default_question_permissions: Option<serde_json::Value>,
#[serde(rename = "default_role", deserialize_with = "Option::deserialize")]
pub default_role: Option<serde_json::Value>,
}
impl ProjectDetail {
#[must_use]
pub fn new(
id: i32,
name: String,
url: String,
type_str: String,
score_type: crate::models::ScoreTypeEnum,
subtitle: String,
description: String,
r#type: String,
site_id: i32,
user_perms: Option<serde_json::Value>,
question_user_perms: Option<serde_json::Value>,
sign_up_fields: ::std::collections::HashMap<String, serde_json::Value>,
tournament_close_date: String,
tournament_start_date: String,
prize_pool: f64,
config: ::std::collections::HashMap<String, serde_json::Value>,
in_main_feed_by_default: bool,
public: bool,
is_opt_in: bool,
user_permissions: Option<serde_json::Value>,
essay_count: i32,
completion_question_count: i32,
organizations: Vec<crate::models::Organization>,
header_logo: String,
header_image: String,
default_project_permissions: Option<serde_json::Value>,
default_question_permissions: Option<serde_json::Value>,
default_role: Option<serde_json::Value>,
) -> ProjectDetail {
ProjectDetail {
id,
name,
url,
type_str,
score_type,
subtitle,
description,
r#type,
site_id,
user_perms,
question_user_perms,
sign_up_fields,
tournament_close_date,
tournament_start_date,
prize_pool,
config,
in_main_feed_by_default,
public,
is_opt_in,
user_permissions,
essay_count,
completion_question_count,
organizations,
header_logo,
header_image,
default_project_permissions,
default_question_permissions,
default_role,
}
}
}