journallib/dto/
lesson_response_with_mark_and_homework.rs

1// use chrono::NaiveDateTime;
2// use common::enums::lesson_type::LessonType;
3// use common::enums::status::Status;
4// use common::utils::serialize_option_naive_date;
5// use serde::{Deserialize, Serialize};
6// use uuid::Uuid;
7//
8// use crate::dto::homework_response::HomeworkResponse;
9// use crate::dto::mark_response::MarkResponse;
10// use crate::dto::scenario_section::ScenarioSections;
11// use crate::entity::lesson::Lesson;
12//
13// #[derive(Serialize, Deserialize)]
14// #[serde(rename_all = "camelCase")]
15// pub struct LessonResponseWithMarkAndHomework {
16//     pub id: Uuid,
17//     #[serde(skip_serializing_if = "Option::is_none")]
18//     pub ver: Option<i32>,
19//     #[serde(skip_serializing_if = "Option::is_none")]
20//     pub comment: Option<String>,
21//     #[serde(skip_serializing_if = "Option::is_none")]
22//     pub importance_default: Option<i32>,
23//     #[serde(skip_serializing_if = "Option::is_none")]
24//     #[serde(rename = "type")]
25//     pub lesson_type: Option<LessonType>,
26//     #[serde(skip_serializing_if = "Option::is_none")]
27//     pub curriculum: Option<Uuid>,
28//     #[serde(skip_serializing_if = "Option::is_none")]
29//     pub test: Option<Uuid>,
30//     #[serde(default)]
31//     #[serde(with = "serialize_option_naive_date")]
32//     #[serde(skip_serializing_if = "Option::is_none")]
33//     pub date: Option<NaiveDateTime>,
34//     #[serde(skip_serializing_if = "Option::is_none")]
35//     pub journal: Option<Uuid>,
36//     #[serde(skip_serializing_if = "Option::is_none")]
37//     pub status: Option<Status>,
38//     #[serde(skip_serializing_if = "Option::is_none")]
39//     pub in_schedule: Option<String>,
40//     #[serde(skip_serializing_if = "Option::is_none")]
41//     pub room: Option<Uuid>,
42//     pub marks: Vec<MarkResponse>,
43//     pub homeworks: Vec<HomeworkResponse>,
44//     #[serde(skip_serializing_if = "Option::is_none")]
45//     pub slot: Option<Uuid>,
46//     #[serde(skip_serializing_if = "Option::is_none")]
47//     pub tasks: Option<serde_json::Value>,
48//     #[serde(skip_serializing_if = "Option::is_none")]
49//     pub scenario_sections: Option<ScenarioSections>,
50//     #[serde(skip_serializing_if = "Option::is_none")]
51//     pub actions: Option<Vec<serde_json::Value>>,
52//     pub lesson_status: String,
53// }
54//
55// impl LessonResponseWithMarkAndHomework {
56//     pub fn make(
57//         lesson: Lesson,
58//         marks: Vec<MarkResponse>,
59//         homeworks: Vec<HomeworkResponse>,
60//     ) -> LessonResponseWithMarkAndHomework {
61//         LessonResponseWithMarkAndHomework {
62//             id: lesson.uuid,
63//             ver: lesson.ver,
64//             comment: lesson.comment,
65//             importance_default: lesson.importance_default,
66//             lesson_type: lesson.lesson_type,
67//             curriculum: lesson.curriculum,
68//             test: lesson.test,
69//             date: lesson.date,
70//             journal: lesson.journal,
71//             status: lesson.status,
72//             in_schedule: lesson.in_schedule,
73//             room: lesson.room,
74//             marks,
75//             homeworks,
76//             slot: lesson.slot,
77//             tasks: lesson.tasks,
78//             scenario_sections: lesson.scenario_sections,
79//             actions: lesson.actions,
80//             lesson_status: lesson.lesson_status,
81//         }
82//     }
83// }