userlib/dto/
enrolment_request.rs1use crate::jsonb::acknowledgement::AcknowledgementForm;
2use crate::jsonb::additional::AdditionalForm;
3use crate::jsonb::emergency_contacts::EmergencyDetails;
4use crate::jsonb::extra::ExtraForm;
5use crate::jsonb::history::HistoryForm;
6use crate::jsonb::office::OfficeForm;
7use crate::jsonb::parent::ParentForm;
8use crate::jsonb::student::StudentForm;
9use common::entity::DtoReq;
10use common::enums::status::Status;
11use serde::{Deserialize, Serialize};
12use uuid::Uuid;
13
14#[derive(Serialize, Deserialize, Debug, Clone)]
15#[serde(rename_all = "camelCase")]
16pub struct EnrolmentRequest {
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub id: Option<Uuid>,
19 pub org_id: Uuid,
20 pub student: StudentForm,
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub parent: Option<Vec<ParentForm>>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub emergency_contacts: Option<Vec<EmergencyDetails>>,
25 #[serde(skip_serializing_if = "Option::is_none")]
28 pub additional: Option<AdditionalForm>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub history: Option<HistoryForm>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub medicine: Option<ExtraForm>,
33 pub status: Status,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub office: Option<OfficeForm>,
36 #[serde(skip_serializing_if = "Option::is_none")]
37 pub permission: Option<AcknowledgementForm>,
38}
39
40impl DtoReq for EnrolmentRequest {}