use serde::{self, Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
pub struct Params {
#[serde(rename = "id")]
pub r#id: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsCompetenciesItem {
#[serde(rename = "shortname")]
pub r#shortname: Option<String>,
#[serde(rename = "idnumber")]
pub r#idnumber: Option<String>,
#[serde(rename = "description")]
pub r#description: Option<String>,
#[serde(rename = "descriptionformat")]
pub r#descriptionformat: Option<i64>,
#[serde(rename = "sortorder")]
pub r#sortorder: Option<i64>,
#[serde(rename = "parentid")]
pub r#parentid: Option<i64>,
#[serde(rename = "path")]
pub r#path: Option<String>,
#[serde(rename = "ruleoutcome")]
pub r#ruleoutcome: Option<i64>,
#[serde(rename = "ruletype")]
pub r#ruletype: Option<String>,
#[serde(rename = "ruleconfig")]
pub r#ruleconfig: Option<String>,
#[serde(rename = "scaleid")]
pub r#scaleid: Option<i64>,
#[serde(rename = "scaleconfiguration")]
pub r#scaleconfiguration: Option<String>,
#[serde(rename = "competencyframeworkid")]
pub r#competencyframeworkid: Option<i64>,
#[serde(rename = "id")]
pub r#id: Option<i64>,
#[serde(rename = "timecreated")]
pub r#timecreated: Option<i64>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "usermodified")]
pub r#usermodified: Option<i64>,
}
pub type r#ReturnsCompetencies = Vec<ReturnsCompetenciesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsFilesItem {
#[serde(rename = "contextid")]
pub r#contextid: Option<i64>,
#[serde(rename = "component")]
pub r#component: Option<String>,
#[serde(rename = "filearea")]
pub r#filearea: Option<String>,
#[serde(rename = "itemid")]
pub r#itemid: Option<i64>,
#[serde(rename = "filepath")]
pub r#filepath: Option<String>,
#[serde(rename = "filename")]
pub r#filename: Option<String>,
#[serde(rename = "isdir")]
pub r#isdir: Option<bool>,
#[serde(rename = "isimage")]
pub r#isimage: Option<bool>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "timecreated")]
pub r#timecreated: Option<i64>,
#[serde(rename = "filesize")]
pub r#filesize: Option<i64>,
#[serde(rename = "author")]
pub r#author: Option<String>,
#[serde(rename = "license")]
pub r#license: Option<String>,
#[serde(rename = "filenameshort")]
pub r#filenameshort: Option<String>,
#[serde(rename = "filesizeformatted")]
pub r#filesizeformatted: Option<String>,
#[serde(rename = "icon")]
pub r#icon: Option<String>,
#[serde(rename = "timecreatedformatted")]
pub r#timecreatedformatted: Option<String>,
#[serde(rename = "timemodifiedformatted")]
pub r#timemodifiedformatted: Option<String>,
#[serde(rename = "url")]
pub r#url: Option<String>,
}
pub type r#ReturnsFiles = Vec<ReturnsFilesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct Returns {
#[serde(rename = "userid")]
pub r#userid: Option<i64>,
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "description")]
pub r#description: Option<String>,
#[serde(rename = "descriptionformat")]
pub r#descriptionformat: Option<i64>,
#[serde(rename = "url")]
pub r#url: Option<String>,
#[serde(rename = "id")]
pub r#id: Option<i64>,
#[serde(rename = "timecreated")]
pub r#timecreated: Option<i64>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "usermodified")]
pub r#usermodified: Option<i64>,
#[serde(rename = "canmanage")]
pub r#canmanage: Option<bool>,
#[serde(rename = "competencycount")]
pub r#competencycount: Option<i64>,
#[serde(rename = "competencies")]
pub r#competencies: Option<r#ReturnsCompetencies>,
#[serde(rename = "filecount")]
pub r#filecount: Option<i64>,
#[serde(rename = "files")]
pub r#files: Option<r#ReturnsFiles>,
#[serde(rename = "hasurlorfiles")]
pub r#hasurlorfiles: Option<bool>,
#[serde(rename = "urlshort")]
pub r#urlshort: Option<String>,
}
pub async fn call<'a>(
client: &'a mut moodle_client::MoodleClient,
params: &'a mut Params,
) -> anyhow::Result<Returns> {
let json = client
.post("core_competency_read_user_evidence", params)
.await?;
serde_json::from_value(json).map_err(|e| e.into())
}
pub async fn call_raw<'a>(
client: &'a mut moodle_client::MoodleClient,
params: &'a mut Params,
) -> anyhow::Result<serde_json::Value> {
client
.post("core_competency_read_user_evidence", params)
.await
}