librus_api/structs/
grades.rs1use serde::Deserialize;
2
3
4#[derive(Debug, Deserialize)]
5#[serde(rename_all = "PascalCase")]
6pub struct Grade {
7 pub id: i64,
8 pub lesson: GradesRedirect,
9 pub subject: GradesRedirect,
10 pub student: GradesRedirect,
11 pub category: GradesRedirect,
12 pub added_by: GradesRedirect,
13 pub grade: String,
14 pub date: String,
15 pub add_date: String,
16 pub semester: i64,
17 pub is_constituent: bool,
18 pub is_semester: bool,
19 pub is_semester_proposition: bool,
20 pub is_final: bool,
21 pub is_final_proposition: bool,
22 pub comments: Option<Vec<GradesRedirect>>,
23 pub improvement: Option<GradesRedirect>,
24 pub resit: Option<GradesRedirect>,
25}
26
27#[derive(Debug, Deserialize)]
28#[serde(rename_all = "PascalCase")]
29pub struct GradesRedirect {
30 pub id: i32,
31 pub url: String,
32}
33
34
35
36#[derive(Debug, Deserialize)]
37#[serde(rename_all = "PascalCase")]
38pub struct GradesUrl {
39 pub url: String,
40}
41
42#[derive(Debug, Deserialize)]
43#[serde(rename_all = "PascalCase")]
44pub struct GradesResources {
45 #[serde(rename = "Grades\\Averages")]
46 pub grades_averages: GradesUrl,
47 #[serde(rename = "Grades\\StudentsAverages")]
48 pub grades_students_averages: GradesUrl,
49 #[serde(rename = "Grades\\CategoriesAverages")]
50 pub grades_categories_averages: GradesUrl,
51 #[serde(rename = "Grades\\Categories")]
52 pub grades_categories: GradesUrl,
53 #[serde(rename = "Grades\\Comments")]
54 pub grades_comments: GradesUrl,
55 #[serde(rename = "Grades\\Scales")]
56 pub grades_scales: GradesUrl,
57 #[serde(rename = "Grades\\Types")]
58 pub grades_types: GradesUrl,
59 #[serde(rename = "Grades\\UnpreparednessPerSemesterAndSubject")]
60 pub grades_unpreparedness_per_semester_and_subject: GradesUrl,
61 #[serde(rename = "..")]
62 pub root: GradesUrl,
63}
64
65#[derive(Debug, Deserialize)]
66#[serde(rename_all = "PascalCase")]
67pub struct ResponseGrades{
68 pub grades: Vec<Grade>,
69 pub resources: GradesResources,
70 pub url: String,
71}
72
73#[derive(Debug, Deserialize)]
74#[serde(rename_all = "PascalCase")]
75pub struct GradeColor {
76 pub id: i64,
77 pub url: String,
78}
79
80#[derive(Debug, Deserialize)]
81#[serde(rename_all = "PascalCase")]
82pub struct GradeCategory {
83 pub id: i64,
84 pub color: GradeColor,
85 pub name: String,
86 pub adults_extramural: bool,
87 pub adults_daily: bool,
88 pub standard: bool,
89 pub is_read_only: String,
90 pub count_to_the_average: bool,
91 pub block_any_grades: bool,
92 pub obligation_to_perform: bool,
93}
94
95#[derive(Debug, Deserialize)]
96#[serde(rename_all = "PascalCase")]
97pub struct GradesCategoryResources{
98 #[serde(rename = "..")]
99 pub root: GradesUrl,
100}
101
102#[derive(Debug, Deserialize)]
103#[serde(rename_all = "PascalCase")]
104pub struct GradeComment {
105 pub id: i32,
106 pub added_by: GradeDetails,
107 pub grade: GradeDetails,
108 pub text: String,
109}
110
111#[derive(Debug, Deserialize)]
112#[serde(rename_all = "PascalCase")]
113pub struct GradeDetails {
114 pub id: i64,
115 pub url: String,
116}
117
118#[derive(Debug, Deserialize)]
119#[serde(rename_all = "PascalCase")]
120pub struct ResponseGradesCategories{
121 pub category: GradeCategory,
122 pub resources: GradesCategoryResources,
123}
124
125#[derive(Debug, Deserialize)]
126#[serde(rename_all = "PascalCase")]
127pub struct ResponseGradesComments{
128 pub comment: Option<GradeComment>,
129 pub resources: GradesCategoryResources,
130 pub url: String,
131
132}