journallib/dto/
subgroup_response.rs

1use common::entity::DtoResp;
2use common::enums::subject::Subject;
3use serde::{Deserialize, Serialize};
4use uuid::Uuid;
5
6use crate::dto::journal_response::JournalResponse;
7
8#[derive(Serialize, Deserialize, Debug, Clone)]
9#[serde(rename_all = "camelCase")]
10pub struct SubgroupResponse {
11    pub id: Uuid,
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub students: Option<Vec<Uuid>>,
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub name: Option<String>,
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub organization: Option<Uuid>,
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub year: Option<i32>,
20    #[serde(skip_serializing_if = "Option::is_none")]
21    pub letter: Option<String>,
22    #[serde(skip_serializing_if = "Option::is_none")]
23    pub teacher: Option<Uuid>,
24    #[serde(rename = "schoolClass")]
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub class_id: Option<Uuid>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub schedule: Option<Uuid>,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub subject: Option<Subject>,
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub default_room: Option<Uuid>,
33    pub curriculum: Option<Uuid>,
34    pub journal_list: Vec<JournalResponse>,
35    pub student_chat_status: String,
36    #[serde(skip_serializing_if = "Option::is_none")]
37    pub min_capacity: Option<i32>,
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub max_capacity: Option<i32>,
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub elective_id: Option<Uuid>,
42}
43
44impl DtoResp for SubgroupResponse {}