librus_rs/structs/
lessons.rs1use serde::Deserialize;
4
5#[derive(Debug, Deserialize)]
7#[serde(rename_all = "PascalCase")]
8pub struct Lesson {
9 pub id: i32,
11 pub teacher: LessonClass,
13 pub subject: LessonClass,
15 pub class: LessonClass,
17}
18
19#[derive(Debug, Deserialize)]
21#[serde(rename_all = "PascalCase")]
22pub struct LessonClass {
23 pub id: i32,
25 pub url: String,
27}
28
29#[derive(Debug, Deserialize)]
30pub struct LessonResources {
31 #[serde(rename = "..")]
32 pub root: LessonUrl,
33}
34
35#[derive(Debug, Deserialize)]
36#[serde(rename_all = "PascalCase")]
37pub struct LessonUrl {
38 pub url: String,
39}
40
41#[derive(Debug, Deserialize)]
43#[serde(rename_all = "PascalCase")]
44pub struct ResponseLesson {
45 pub lesson: Lesson,
47 pub resources: LessonResources,
49 pub url: String,
51}
52
53#[derive(Debug, Deserialize)]
55#[serde(rename_all = "PascalCase")]
56pub struct LessonSubject {
57 pub id: i32,
59 pub name: String,
61 #[serde(rename = "No")]
63 pub num: i32,
64 pub short: String,
66 pub is_extra_curricular: Option<bool>,
68 pub is_block_lesson: Option<bool>,
70}
71
72#[derive(Debug, Deserialize)]
74#[serde(rename_all = "PascalCase")]
75pub struct ResponseLessonSubject {
76 pub subject: Option<LessonSubject>,
78 pub resources: LessonResources,
80 pub url: String,
82}
83
84#[derive(Debug, Deserialize)]
86#[serde(rename_all = "PascalCase")]
87pub struct Attendance {
88 pub id: AttendanceId,
90 pub lesson: AttendanceAddedBy,
92 pub student: AttendanceAddedBy,
94 pub date: String,
96 pub add_date: String,
98 pub lesson_no: i32,
100 pub semester: i32,
102 #[serde(rename = "Type")]
104 pub attendance_type: AttendanceAddedBy,
105 pub added_by: AttendanceAddedBy,
107 pub trip: Option<AttendanceAddedBy>,
109}
110
111#[derive(Debug, Deserialize)]
113#[serde(rename_all = "PascalCase")]
114pub struct AttendanceAddedBy {
115 pub id: i32,
117 pub url: String,
119}
120
121#[derive(Debug, Deserialize)]
123#[serde(untagged)]
124pub enum AttendanceId {
125 Integer(i32),
127 String(String),
129}
130
131#[derive(Debug, Deserialize)]
132pub struct AttendanceResources {
133 #[serde(rename = "Attendances\\Types")]
134 pub attendances_types: LessonUrl,
135 #[serde(rename = "Attendances\\LessonsStatistics")]
136 pub attendances_lessons_statistics: LessonUrl,
137 #[serde(rename = "Attendances\\FilledByTeacher")]
138 pub attendances_filled_by_teacher: LessonUrl,
139 #[serde(rename = "..")]
140 pub empty: LessonUrl,
141}
142
143#[derive(Debug, Deserialize)]
145#[serde(rename_all = "PascalCase")]
146pub struct ResponseAttendances {
147 pub attendances: Vec<Attendance>,
149 pub resources: AttendanceResources,
151 pub url: String,
153}
154
155#[derive(Debug, Deserialize)]
157#[serde(rename_all = "PascalCase")]
158pub struct AttendanceType {
159 pub id: i32,
161 pub name: String,
163 pub short: String,
165 pub standard: bool,
167 #[serde(rename = "ColorRGB")]
169 pub color_rgb: Option<String>,
170 pub is_presence_kind: bool,
172 pub order: i32,
174 pub identifier: String,
176 pub standard_type: Option<AttendanceColor>,
178 pub color: Option<AttendanceColor>,
180}
181
182#[derive(Debug, Deserialize)]
183#[serde(rename_all = "PascalCase")]
184pub struct AttendanceColor {
185 pub id: i32,
186 pub url: String,
187}
188
189#[derive(Debug, Deserialize)]
191#[serde(rename_all = "PascalCase")]
192pub struct ResponseAttendancesType {
193 pub types: Vec<AttendanceType>,
195 pub resources: LessonResources,
197 pub url: String,
199}