journallib/dto/
subgroup_response.rs1use 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 {}