librus_api/structs/
grades.rs

1use 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}