librus_rs/structs/
grades.rs1use serde::Deserialize;
4
5#[derive(Debug, Deserialize)]
7#[serde(rename_all = "PascalCase")]
8pub struct Grade {
9 pub id: i64,
11 pub lesson: GradesRedirect,
13 pub subject: GradesRedirect,
15 pub student: GradesRedirect,
17 pub category: GradesRedirect,
19 pub added_by: GradesRedirect,
21 pub grade: String,
23 pub date: String,
25 pub add_date: String,
27 pub semester: i64,
29 pub is_constituent: bool,
31 pub is_semester: bool,
33 pub is_semester_proposition: bool,
35 pub is_final: bool,
37 pub is_final_proposition: bool,
39 pub comments: Option<Vec<GradesRedirect>>,
41 pub improvement: Option<GradesRedirect>,
43 pub resit: Option<GradesRedirect>,
45}
46
47#[derive(Debug, Deserialize)]
49#[serde(rename_all = "PascalCase")]
50pub struct GradesRedirect {
51 pub id: i32,
53 pub url: String,
55}
56
57#[derive(Debug, Deserialize)]
58#[serde(rename_all = "PascalCase")]
59pub struct GradesUrl {
60 pub url: String,
61}
62
63#[derive(Debug, Deserialize)]
64#[serde(rename_all = "PascalCase")]
65pub struct GradesResources {
66 #[serde(rename = "Grades\\Averages")]
67 pub grades_averages: GradesUrl,
68 #[serde(rename = "Grades\\StudentsAverages")]
69 pub grades_students_averages: GradesUrl,
70 #[serde(rename = "Grades\\CategoriesAverages")]
71 pub grades_categories_averages: GradesUrl,
72 #[serde(rename = "Grades\\Categories")]
73 pub grades_categories: GradesUrl,
74 #[serde(rename = "Grades\\Comments")]
75 pub grades_comments: GradesUrl,
76 #[serde(rename = "Grades\\Scales")]
77 pub grades_scales: GradesUrl,
78 #[serde(rename = "Grades\\Types")]
79 pub grades_types: GradesUrl,
80 #[serde(rename = "Grades\\UnpreparednessPerSemesterAndSubject")]
81 pub grades_unpreparedness_per_semester_and_subject: GradesUrl,
82 #[serde(rename = "..")]
83 pub root: GradesUrl,
84}
85
86#[derive(Debug, Deserialize)]
88#[serde(rename_all = "PascalCase")]
89pub struct ResponseGrades {
90 pub grades: Vec<Grade>,
92 pub resources: GradesResources,
94 pub url: String,
96}
97
98#[derive(Debug, Deserialize)]
99#[serde(rename_all = "PascalCase")]
100pub struct GradeColor {
101 pub id: i64,
102 pub url: String,
103}
104
105#[derive(Debug, Deserialize)]
107#[serde(rename_all = "PascalCase")]
108pub struct GradeCategory {
109 pub id: i64,
111 pub color: GradeColor,
113 pub name: String,
115 pub adults_extramural: bool,
117 pub adults_daily: bool,
119 pub standard: bool,
121 pub is_read_only: String,
123 pub count_to_the_average: bool,
125 pub block_any_grades: bool,
127 pub obligation_to_perform: bool,
129}
130
131#[derive(Debug, Deserialize)]
132#[serde(rename_all = "PascalCase")]
133pub struct GradesCategoryResources {
134 #[serde(rename = "..")]
135 pub root: GradesUrl,
136}
137
138#[derive(Debug, Deserialize)]
140#[serde(rename_all = "PascalCase")]
141pub struct GradeComment {
142 pub id: i32,
144 pub added_by: GradeDetails,
146 pub grade: GradeDetails,
148 pub text: String,
150}
151
152#[derive(Debug, Deserialize)]
153#[serde(rename_all = "PascalCase")]
154pub struct GradeDetails {
155 pub id: i64,
156 pub url: String,
157}
158
159#[derive(Debug, Deserialize)]
161#[serde(rename_all = "PascalCase")]
162pub struct ResponseGradesCategories {
163 pub category: GradeCategory,
165 pub resources: GradesCategoryResources,
167}
168
169#[derive(Debug, Deserialize)]
171#[serde(rename_all = "PascalCase")]
172pub struct ResponseGradesComments {
173 pub comment: Option<GradeComment>,
175 pub resources: GradesCategoryResources,
177 pub url: String,
179}