userlib/dto/
enrolment_request.rs

1use 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")]
26    //pub family: Option<diesel_json::Json<FamilyForm>>,
27    #[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 {}