more refactoring

This commit is contained in:
vextrixes committed 2026-11-01 01:31:26 +01:00
1 parent 35536247db
commit 7b53c2db88
15 files changed
+174 -139

No files matched your search

+2 -105
View File
@@ -1,87 +1,6 @@
use crate::{Hour, StdType, StdTypeNullable};
use chrono::{DateTime, FixedOffset};
use crate::{AbsentType, StdTypeAbbrevNullable};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceOverviewResponse {
pub percentage_threshold: f64, //TODO: cutom type (u8)
pub absences: Vec<AbsenceDay>,
pub absences_per_subject: Option<Vec<SubjectAbsence>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceDay {
pub date: chrono::DateTime<FixedOffset>,
pub unsolved: u16,
pub ok: u16,
pub missed: u16,
pub late: u16,
pub soon: u16,
pub school: u16,
pub distance_teaching: u16,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct SubjectAbsence {
pub subject_name: String,
pub lessons_count: u16,
pub base: u16,
pub late: u16,
pub soon: u16,
pub school: u16,
pub distance_teaching: u16,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct StudentTimetableAbsenceResponse {
pub student: Option<StdTypeNullable>,
pub days: Vec<AbsenceDayResponse>,
pub absent_type_options: Vec<AbsenceTypeOption>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceTypeOption {
pub absent_type: AbsentType,
pub absent_kind_enabled: bool,
pub absent_kind_required: bool,
pub absent_note_enabled: bool,
pub next_absent_type: AbsentType,
pub absent_kinds: Vec<StdType>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum AbsentType {
Absent,
AbsentLate,
AbsentMiss,
AbsentOk,
AbsentSchool,
AbsentSoon,
DistanceTeaching,
NoAbsent,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceSubject {
pub id: String,
pub abbrev: Option<String>,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceDayResponse {
pub date: DateTime<FixedOffset>,
pub absences: Vec<Absence>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Absence {
@@ -94,27 +13,5 @@ pub struct Absence {
pub absent_kind_id: Option<String>,
pub notice: Option<String>,
pub student_id: Option<String>,
pub subject: Option<AbsenceSubject>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ExcuseAbsenceResponse {
pub absences: Vec<AbsenceRecord>,
pub hours: Vec<Hour>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceRecord {
pub minutes: i64,
pub absent_type: AbsentType,
pub hour_id: Option<String>,
pub date: DateTime<FixedOffset>,
pub start: i64,
pub duration: i64,
pub absent_kind_id: Option<String>,
pub notice: Option<String>,
pub student_id: Option<String>,
pub apology_id: Option<String>,
pub subject: Option<StdTypeAbbrevNullable>,
}
+15
View File
@@ -0,0 +1,15 @@
use chrono::{DateTime, FixedOffset};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceDay {
pub date: DateTime<FixedOffset>,
pub unsolved: u16,
pub ok: u16,
pub missed: u16,
pub late: u16,
pub soon: u16,
pub school: u16,
pub distance_teaching: u16,
}
+10
View File
@@ -0,0 +1,10 @@
use crate::Absence;
use chrono::{DateTime, FixedOffset};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceDayResponse {
pub date: DateTime<FixedOffset>,
pub absences: Vec<Absence>,
}
+10
View File
@@ -0,0 +1,10 @@
use crate::{AbsenceDay, SubjectAbsence};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceOverviewResponse {
pub percentage_threshold: f64, //TODO: cutom type (u8)
pub absences: Vec<AbsenceDay>,
pub absences_per_subject: Option<Vec<SubjectAbsence>>,
}
+18
View File
@@ -0,0 +1,18 @@
use crate::AbsentType;
use chrono::{DateTime, FixedOffset};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceRecord {
pub minutes: i64,
pub absent_type: AbsentType,
pub hour_id: Option<String>,
pub date: DateTime<FixedOffset>,
pub start: i64,
pub duration: i64,
pub absent_kind_id: Option<String>,
pub notice: Option<String>,
pub student_id: Option<String>,
pub apology_id: Option<String>,
}
+13
View File
@@ -0,0 +1,13 @@
use crate::{AbsentType, StdType};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbsenceTypeOption {
pub absent_type: AbsentType,
pub absent_kind_enabled: bool,
pub absent_kind_required: bool,
pub absent_note_enabled: bool,
pub next_absent_type: AbsentType,
pub absent_kinds: Vec<StdType>,
}
+14
View File
@@ -0,0 +1,14 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum AbsentType {
Absent,
AbsentLate,
AbsentMiss,
AbsentOk,
AbsentSchool,
AbsentSoon,
DistanceTeaching,
NoAbsent,
}
+9
View File
@@ -0,0 +1,9 @@
use crate::{AbsenceRecord, Hour};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ExcuseAbsenceResponse {
pub absences: Vec<AbsenceRecord>,
pub hours: Vec<Hour>,
}
+18
View File
@@ -1,5 +1,23 @@
mod absence;
mod absence_day;
mod absence_day_response;
mod absence_overview_response;
mod absence_record;
mod absence_type_option;
mod absent_type;
mod endpoints;
mod excuse_absence_response;
mod student_timetable_absence_response;
mod subject_absence;
pub use absence::*;
pub use absence_day::*;
pub use absence_day_response::*;
pub use absence_overview_response::*;
pub use absence_record::*;
pub use absence_type_option::*;
pub use absent_type::*;
pub use endpoints::*;
pub use excuse_absence_response::*;
pub use student_timetable_absence_response::*;
pub use subject_absence::*;
@@ -0,0 +1,10 @@
use crate::{AbsenceDayResponse, AbsenceTypeOption, StdTypeNullable};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct StudentTimetableAbsenceResponse {
pub student: Option<StdTypeNullable>,
pub days: Vec<AbsenceDayResponse>,
pub absent_type_options: Vec<AbsenceTypeOption>,
}
+13
View File
@@ -0,0 +1,13 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct SubjectAbsence {
pub subject_name: String,
pub lessons_count: u16,
pub base: u16,
pub late: u16,
pub soon: u16,
pub school: u16,
pub distance_teaching: u16,
}
@@ -1,13 +1,7 @@
use crate::StdTypeNullable;
use crate::{FinalMark, StdTypeNullable};
use chrono::{DateTime, FixedOffset};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CertificateTerms {
pub certificate_terms: Vec<CertificateTerm>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CertificateTerm {
@@ -30,29 +24,6 @@ pub struct CertificateTerm {
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct FinalMark {
pub mark_date: DateTime<FixedOffset>,
pub edit_date: DateTime<FixedOffset>,
pub mark_text: String,
pub subject_id: String,
pub id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PedagogicalMeasure {
pub pedagogical_measures: Vec<PedagogicalMeasure>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PedagogicalMeasures {
pub school_year: String,
pub semester: String,
pub type_label: String,
pub date: DateTime<FixedOffset>,
pub type_id: String,
pub text: String,
pub actual_grade: Option<i64>,
pub actual_grade_name: Option<String>,
pub struct CertificateTerms {
pub certificate_terms: Vec<CertificateTerm>,
}
+12
View File
@@ -0,0 +1,12 @@
use chrono::{DateTime, FixedOffset};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct FinalMark {
pub mark_date: DateTime<FixedOffset>,
pub edit_date: DateTime<FixedOffset>,
pub mark_text: String,
pub subject_id: String,
pub id: String,
}
+6 -2
View File
@@ -1,5 +1,9 @@
mod certificate_term;
mod endpoints;
mod semester;
mod final_mark;
mod pedagogical_measure;
pub use certificate_term::*;
pub use endpoints::*;
pub use semester::*;
pub use final_mark::*;
pub use pedagogical_measure::*;
+21
View File
@@ -0,0 +1,21 @@
use chrono::{DateTime, FixedOffset};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PedagogicalMeasure {
pub pedagogical_measures: Vec<PedagogicalMeasure>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PedagogicalMeasures {
pub school_year: String,
pub semester: String,
pub type_label: String,
pub date: DateTime<FixedOffset>,
pub type_id: String,
pub text: String,
pub actual_grade: Option<i64>,
pub actual_grade_name: Option<String>,
}