canvas_lms_api/resources/
module.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Deserialize, Serialize)]
6pub struct Module {
7 pub id: u64,
8 pub course_id: Option<u64>,
9 pub name: Option<String>,
10 pub position: Option<u64>,
11 pub unlock_at: Option<DateTime<Utc>>,
12 pub require_sequential_progress: Option<bool>,
13 pub prerequisite_module_ids: Option<Vec<u64>>,
14 pub items_count: Option<u64>,
15 pub items_url: Option<String>,
16 pub state: Option<String>,
17 pub completed_at: Option<DateTime<Utc>>,
18 pub publish_final_grade: Option<bool>,
19 pub published: Option<bool>,
20}
21
22#[derive(Debug, Clone, Deserialize, Serialize)]
24pub struct ModuleItem {
25 pub id: u64,
26 pub module_id: Option<u64>,
27 pub position: Option<u64>,
28 pub title: Option<String>,
29 pub indent: Option<u64>,
30 #[serde(rename = "type")]
31 pub item_type: Option<String>,
32 pub content_id: Option<u64>,
33 pub html_url: Option<String>,
34 pub url: Option<String>,
35 pub page_url: Option<String>,
36 pub external_url: Option<String>,
37 pub completion_requirement: Option<CompletionRequirement>,
38 pub published: Option<bool>,
39}
40
41#[derive(Debug, Clone, Deserialize, Serialize)]
43pub struct CompletionRequirement {
44 #[serde(rename = "type")]
45 pub requirement_type: Option<String>,
46 pub min_score: Option<f64>,
47 pub completed: Option<bool>,
48}