journallib/dto/
lesson_request.rs

1use chrono::NaiveDateTime;
2use common::entity::DtoReq;
3use common::enums::status::Status;
4use common::utils::serialize_option_naive_date;
5use serde::{Deserialize, Serialize};
6use uuid::Uuid;
7
8use crate::dto::homework_request::HomeworkRequest;
9use crate::dto::mark_request::MarkRequest;
10use crate::enums::lesson_type::LessonType;
11
12#[derive(Serialize, Deserialize, Debug, Clone)]
13#[serde(rename_all = "camelCase")]
14pub struct LessonRequest {
15    pub id: Option<Uuid>,
16    pub comment: Option<String>,
17    pub importance_default: Option<i32>,
18    #[serde(rename = "type")]
19    pub lesson_type: Option<LessonType>,
20    pub curriculum: Option<Uuid>,
21    pub test: Option<Uuid>,
22    #[serde(default)]
23    #[serde(with = "serialize_option_naive_date")]
24    pub date: Option<NaiveDateTime>,
25    pub journal: Uuid,
26    pub status: Option<Status>,
27    pub in_schedule: Option<String>,
28    pub room: Option<Uuid>,
29    pub homeworks: Option<Vec<HomeworkRequest>>,
30    pub marks: Option<Vec<MarkRequest>>,
31    pub slot: Option<Uuid>,
32    pub curriculum_id: Option<Uuid>,
33}
34
35impl DtoReq for LessonRequest {}