use serde::{self, Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItemPlugindataAssignfeedbackcommentsEditor {
#[serde(rename = "text")]
pub r#text: Option<String>,
#[serde(rename = "format")]
pub r#format: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItemPlugindata {
#[serde(rename = "assignfeedbackcomments_editor")]
pub r#assignfeedbackcomments_editor:
Option<ParamsGradesItemPlugindataAssignfeedbackcommentsEditor>,
#[serde(rename = "files_filemanager")]
pub r#files_filemanager: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItemAdvancedgradingdataGuideCriteriaItemFillingsItem {
#[serde(rename = "criterionid")]
pub r#criterionid: Option<i64>,
#[serde(rename = "levelid")]
pub r#levelid: Option<i64>,
#[serde(rename = "remark")]
pub r#remark: Option<String>,
#[serde(rename = "remarkformat")]
pub r#remarkformat: Option<i64>,
#[serde(rename = "score")]
pub r#score: Option<f64>,
}
pub type r#ParamsGradesItemAdvancedgradingdataGuideCriteriaItemFillings =
Vec<ParamsGradesItemAdvancedgradingdataGuideCriteriaItemFillingsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItemAdvancedgradingdataGuideCriteriaItem {
#[serde(rename = "criterionid")]
pub r#criterionid: Option<i64>,
#[serde(rename = "fillings")]
pub r#fillings: Option<r#ParamsGradesItemAdvancedgradingdataGuideCriteriaItemFillings>,
}
pub type r#ParamsGradesItemAdvancedgradingdataGuideCriteria =
Vec<ParamsGradesItemAdvancedgradingdataGuideCriteriaItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItemAdvancedgradingdataGuide {
#[serde(rename = "criteria")]
pub r#criteria: Option<r#ParamsGradesItemAdvancedgradingdataGuideCriteria>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItemAdvancedgradingdataRubricCriteriaItemFillingsItem {
#[serde(rename = "criterionid")]
pub r#criterionid: Option<i64>,
#[serde(rename = "levelid")]
pub r#levelid: Option<i64>,
#[serde(rename = "remark")]
pub r#remark: Option<String>,
#[serde(rename = "remarkformat")]
pub r#remarkformat: Option<i64>,
}
pub type r#ParamsGradesItemAdvancedgradingdataRubricCriteriaItemFillings =
Vec<ParamsGradesItemAdvancedgradingdataRubricCriteriaItemFillingsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItemAdvancedgradingdataRubricCriteriaItem {
#[serde(rename = "criterionid")]
pub r#criterionid: Option<i64>,
#[serde(rename = "fillings")]
pub r#fillings: Option<r#ParamsGradesItemAdvancedgradingdataRubricCriteriaItemFillings>,
}
pub type r#ParamsGradesItemAdvancedgradingdataRubricCriteria =
Vec<ParamsGradesItemAdvancedgradingdataRubricCriteriaItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItemAdvancedgradingdataRubric {
#[serde(rename = "criteria")]
pub r#criteria: Option<r#ParamsGradesItemAdvancedgradingdataRubricCriteria>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItemAdvancedgradingdata {
#[serde(rename = "guide")]
pub r#guide: Option<ParamsGradesItemAdvancedgradingdataGuide>,
#[serde(rename = "rubric")]
pub r#rubric: Option<ParamsGradesItemAdvancedgradingdataRubric>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ParamsGradesItem {
#[serde(rename = "userid")]
pub r#userid: Option<i64>,
#[serde(rename = "grade")]
pub r#grade: Option<f64>,
#[serde(rename = "attemptnumber")]
pub r#attemptnumber: Option<i64>,
#[serde(rename = "addattempt")]
pub r#addattempt: Option<bool>,
#[serde(rename = "workflowstate")]
pub r#workflowstate: Option<String>,
#[serde(rename = "plugindata")]
pub r#plugindata: Option<ParamsGradesItemPlugindata>,
#[serde(rename = "advancedgradingdata")]
pub r#advancedgradingdata: Option<ParamsGradesItemAdvancedgradingdata>,
}
pub type r#ParamsGrades = Vec<ParamsGradesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct Params {
#[serde(rename = "assignmentid")]
pub r#assignmentid: Option<i64>,
#[serde(rename = "applytoall")]
pub r#applytoall: Option<bool>,
#[serde(rename = "grades")]
pub r#grades: Option<r#ParamsGrades>,
}